高見知英のかいはつにっし(β)

高見知英のアプリケーション開発日誌 のほか、地域活動などの活動報告ブログ。

XmlTextReaderの使い方メモ φ(.. )

 今RSSの文法と、XmlTextReaderの使い方に使い方について調べています。
.NETにあるクラス System.Xml.XmlTextReaderは、便利ですが、(IEで見たときの)見た目とはちょっと感覚が違うようで…。
まあ、あんまり使ってはいないし、テスト実行もしてないのでうまくいってるか分かりませんが、とりあえず気づいた文だけメモ
 基本的にはWhileループで、XmlTextReader.Readを読んでおけばいいようです。
DelphiのツリービューのNextメソッドとか(あれはHasNextとセットですけど)と同じような、イテレータのような使い方をするメソッドで、
これを呼び出すと、次のノード*1を読み込み、読み込めたらTrueを返すというものです。まあ、ヘルプにもあるのでいちいち書かなくてもいいでしょう。
 で、Select Caseで、NodeTypeを調べながら、動作させます。
各ノードの名前(>a href="..."<のようなタグの場合a)はNameプロパティで得られます。
各ノードの属性(上の例ならhrefなど)は、GetAttributesプロパティで、(左からの?)インデックスか、名前で取得できます。
とりあえずこれだけでも分かっていれば、RSSは読み込める様子。
タグとその中身のテキストが、別のノードとして分類されてるのは、ちょっと厳しいですけどね(^_^;
詳しくは、宇宙仮面さんのサイトにあるので、参考にどうぞ。

 しかし、これは結構単純かつ面白いやり方ですね、Delphiでも、PickTokenとかを駆使すればできるかもしれないです。

*1:ここで言うノードというのは、タグだったり、その中身のテキストだったり、要するにXML上にあるあらゆる要素がノードとされてるようです