使用linq到xml遍历xml树中的每个元素

我想遍历xml中的每个元素和属性,并在不知道元素名称的情况下获取名称值。 我甚至有一本关于使用C#的linq to xml的书,它只告诉我如何在我已经知道元素的名称时查询以获取元素的值。

下面的代码只给出了最高级别的元素信息。 我还需要达到所有降序元素。

XElement reportElements = null; reportElements = XElement.Load(filePathName.ToString()); foreach (XElement xe in reportElements.Elements()) { MessageBox.Show(xe.ToString()); } 

Elements只走一层; Descendants遍历整个DOM的元素,然后您可以(按元素)检查属性:

  foreach (var el in doc.Descendants()) { Console.WriteLine(el.Name); foreach (var attrib in el.Attributes()) { Console.WriteLine("> " + attrib.Name + " = " + attrib.Value); } } 

你应该试试:

 reportElements.Descendants()