我有XElement
对象,这是从XML文件中读取的XML树。现在我想检查此树中的所有节点以获取第一个属性名称和值。有没有简单的方法来遍历所有节点(从root到leaves)?我的XML文件有很多不同的奇怪节点 - 这就是解决这个问题的难度。我想过写一些递归,但希望这是解决这个问题的另一种方法。
答案 0 :(得分:2)
也许看看Xpath。像这样//*[@id=42]
的XPath可以完成这项工作。
这意味着获取属性“id”为42的所有节点。
你可以只执行//*
,它将返回树中的所有节点。
Xpath: http://msdn.microsoft.com/en-gb/library/ms950786.aspx
答案 1 :(得分: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);
}
}