初めて C# で Twitter の API を使ってみた

この URL へアクセスすると、XML 形式で Twitter.com から tweetXML 形式で送ってくれる。
送られてくる tweet は「公開されているすべてのユーザの tweet の最新から 20 件」。

次のコードを適当なボタンのクリックイベントで実行させると
テキストボックス tbBox に 20個分の tweet の本文を表示してくれる。

            WebClient wc = new WebClient();
            wc.Encoding = Encoding.UTF8;
            Stream st = wc.OpenRead("http://api.twitter.com/1/statuses/public_timeline.xml");

            // strXML に wc からの読み込んだ文字列を格納
            StreamReader sr = new StreamReader(st); //, Encoding.GetEncoding("shift_jis"));
            string strXML = sr.ReadToEnd();
            sr.Close();
            st.Close();

            tbBox.Text = "";
            // tbBox.Text = strXML;

            // strXML に読み込まれた XML の解析
            XmlDocument xml = new XmlDocument();
            xml.LoadXml(strXML);
            XmlNodeList nodes = xml.SelectNodes("//statuses/status/text");

            int lineNo = 1;
            foreach (XmlNode node in nodes)
            {
                tbBox.Text += lineNo.ToString() + ":" + node.InnerText + "\r\n";
                lineNo++;
            }

プログラムの冒頭に

  • WebClient を使うために using System.Net;
  • XmlDocument 他 を使うために using System.Xml;

が必要。

これで日本語のコードも問題なく TextBox に表示できた。

なんとなくわかるけど、説明できないもの

  • XmlDocumnt の SelectNodes関数 の引数の書き方。
  • XmlNodeList と XmlNode のつながり
  • foreach ループの使い方

とりあえず動いたからいいけど、あんまり理解してないのでどこかで勉強しておかないといけないなぁと思うもの

  • twitter.com からやってきた xml ファイルの内容の意味