2011-11-11 8 views

答えて

1

XmlRreaderでは、他のスキームで作業しています。あなたはいつもで、あるものはです。現在はノードになり、次のものに切り替わります。現在のノードについて、あなたはタグがフォーム<something attr=value/>である場合。要素が空の場合、明らかにあなたは何の子項目を持っていないと言いた(IsEmptyElementを求めることができます。

IsEmptyElementがfalseの場合を考えてみて、今、あなたが何かを持っています<something> <maybechild/> </something>のようにあなたはReadStartElementと言うことができます。次のポジションにはIsStartElementをチェックしてください、それが本当なら、あなたは子供がいて、あなたがいます。子供。

その他のドキュメント:http://msdn.microsoft.com/en-us/library/t9bfea29.aspx

+0

クール。 Vladに感謝します。 RTFM for me :) – Jacko

+0

兄弟はどうですか? – Jacko

+0

@Jacko:まあ、要素自体で仕上げた後、兄弟姉妹に繋がります。要素が空の場合( 'IsEmptyElement'がtrueの場合)、次の項目にスキップした後、' IsStartElement == true'(兄弟を持っている)または 'false'のいずれかがあります。親アイテム)。要素が空でない場合は、子と終了タグを読み込み、次のタグにスキップして同様の処理を行います。 – Vlad

0

XPathDocumentを作成し、CreateNavigatorを使用してXPathNavigatorを作成します。それは(名前が暗示するように)XMLをナビゲートするためのメソッドを持っています。同等の方法はMoveToFirstChildMoveToNextです。

+1

THanks、Mark Iメモリとパフォーマンスのオーバーヘッドを避けるためにXmlReaderを使用しています。私は深さのプロパティを使用して子供または兄弟を決定することを考えていました。 – Jacko

関連する問題