1

我有XElement一个对象,它是我从 XML 文件中读取的 XML 树。现在我想检查这棵树中的所有节点以获取第一个属性名称和值。有没有简单的方法来遍历所有节点(从根到叶)?我的 XML 文件有很多不同的和奇怪的节点——这就是解决这个问题更难的原因。我想过写一些递归,但希望这是另一种更容易解决的方法。

4

2 回答 2

2

也许看看 Xpath。像这样的 XPath//*[@id=42]可以完成这项工作。

这意味着获取属性“id”值为 42 的所有节点。

你可以这样做,//*它会返回树中的所有节点。

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 回答