C# 检查所有子项是否存在异常
我有C# 检查所有子项是否存在异常,c#,xml,linq,C#,Xml,Linq,我有XElement对象,它是从XML文件读取的XML树。现在我想检查这个树中的所有节点,以获得第一个属性名和值。有没有简单的方法可以遍历所有节点(从根到叶)?我的XML文件有很多不同且奇怪的节点——这就是为什么解决这个问题比较困难的原因。我想写一些递归,但希望这是另一种更容易解决的方法。也许可以看看Xpath。像这样的XPath可以完成这项工作 这意味着获取属性“id”值为42的所有节点 您只需执行/*,即可返回树中的所有节点 Xpath: 语法: 您可以使用获取所有子元素 下面是一些使用递
XElement
对象,它是从XML文件读取的XML树。现在我想检查这个树中的所有节点,以获得第一个属性名和值。有没有简单的方法可以遍历所有节点(从根到叶)?我的XML文件有很多不同且奇怪的节点——这就是为什么解决这个问题比较困难的原因。我想写一些递归,但希望这是另一种更容易解决的方法。也许可以看看Xpath。像这样的XPath可以完成这项工作
这意味着获取属性“id”值为42的所有节点
您只需执行/*
,即可返回树中的所有节点
Xpath:
语法:
您可以使用获取所有子元素 下面是一些使用递归获取每个级别的所有元素的代码:
void GetElements(XElement element){
var elements = element.Elements();
foreach(Element e in elements){
//some stuff here
if(e.Elements() != null)
GetElements(e);
}
}
使用这个,我将只从我的XElement中获得级别1的子级。然后我需要通过重复.Elements()来获得另一个级别。我想避免。是的,这就是我想要的。我可以一次获取所有路径—加载XML文件时,然后我可以使用它们线性地获取所有节点:)thxy您应该在XPath中添加更多受限参数,以便更快:),例如属性,将节点“foo”作为父节点或诸如此类的内容。