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

时间:2009-11-15 21:21:25

标签: c# .net xml linq-to-xml

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

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

            XElement reportElements = null;
            reportElements = XElement.Load(filePathName.ToString());


            foreach (XElement xe in reportElements.Elements())
            {

                MessageBox.Show(xe.ToString());
            }

2 个答案:

答案 0 :(得分:17)

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);
        }
    }

答案 1 :(得分:1)

你应该尝试:

reportElements.Descendants()