1

XElementXMLファイルから読み取ったXMLツリーであるオブジェクトがあります。ここで、このツリー内のすべてのノードをチェックして、最初の属性名と値を取得したいと考えています。すべてのノード (ルートからリーフまで) を通過する簡単な方法はありますか? 私の XML ファイルには非常に多くの異なる奇妙なノードがあります。そのため、この問題を解決するのは困難です。再帰を書くことを考えましたが、それがそれをより簡単に解決する別の方法であることを願っています.

4

2 に答える 2

2

多分Xpathを見てください。このような XPath//*[@id=42]は仕事をすることができます。

これは、値 42 の属性「id」を持つすべてのノードを取得することを意味します。

//*ツリー内のすべてのノードを返すだけです。

Xpath : http://msdn.microsoft.com/en-gb/library/ms950786.aspx

構文 : http://msdn.microsoft.com/en-us/library/ms256471.aspx

于 2012-07-31T13:17:54.737 に答える
1

を使用してすべての子要素を取得できますXElement.Elements()

再帰を使用して各レベルのすべての要素を取得するコードを次に示します。

void GetElements(XElement element){
    var elements = element.Elements();

    foreach(Element e in elements){
        //some stuff here

        if(e.Elements() != null)
           GetElements(e);
    }
}
于 2012-07-31T13:19:37.693 に答える