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

发布于 2024-08-11 09:17:47 字数 430 浏览 3 评论 0原文

我想遍历 xml 中的每个元素和属性并获取名称和值,而无需提前知道元素的名称。我什至有一本关于 linq to xml with C# 的书,它只告诉我当我已经知道元素的名称时如何查询以获取元素的值。

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

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


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

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

I would like to traverse every element and attribute in an xml and grab the name an value without knowing the names of the elements in advance. I even have a book on linq to xml with C# and it only tells me how to query to get the value of elements when I already know the name of the element.

The code below only gives me the most high level element information. I need to also reach all of the descending elements.

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


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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

陌伤ぢ 2024-08-18 09:17:47

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

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

Elements only walks one level; Descendants walks the entire DOM for elements, and you can then (per-element) check the attributes:

    foreach (var el in doc.Descendants()) {
        Console.WriteLine(el.Name);
        foreach (var attrib in el.Attributes()) {
            Console.WriteLine("> " + attrib.Name + " = " + attrib.Value);
        }
    }
别靠近我心 2024-08-18 09:17:47

你应该尝试:

reportElements.Descendants()

You should try:

reportElements.Descendants()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文