使用Linq to XML遍历XML树中的每个元素

9
我希望能够遍历XML中的每个元素和属性,并获取名称和值,而不需要预先知道元素的名称。即使我有一本关于使用C#和LINQ to XML的书籍,它也只告诉我如何查询已知元素名称的元素值。
下面的代码仅提供最高级别元素信息。我还需要访问所有下降元素。
            XElement reportElements = null;
            reportElements = XElement.Load(filePathName.ToString());


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

                MessageBox.Show(xe.ToString());
            }
2个回答

20

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

额,我不知道你所说的“忘记了什么”的意思。 - JK.

1

你可以试试:

reportElements.Descendants()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接