XDocument/Linq 将属性值连接为逗号分隔列表

发布于 2024-08-03 14:14:46 字数 858 浏览 2 评论 0原文

如果我有以下 xml:

        XDocument xDocument = new XDocument(
            new XElement("RootElement",
                new XElement("ChildElement",
                    new XAttribute("Attribute1", "Hello"),
                    new XAttribute("Attribute2", "World")
                ),
                new XElement("ChildElement",
                    new XAttribute("Attribute1", "Foo"),
                    new XAttribute("Attribute2", "Bar")
                )
            )
        );

我使用 LINQ“.” 输出“Hello, Foo”。符号。

我可以使用“Hello”获取

xDocument.Element("RootElement").Element("ChildElement").Attribute("Attribute1").Value;

我可以使用如何获取所有属性

xDocument.Element("RootElement").Elements("ChildElement").Attributes("Attribute1");

如何获取属性的字符串值列表,以便我可以作为逗号分隔列表加入?

If I have the following xml:

        XDocument xDocument = new XDocument(
            new XElement("RootElement",
                new XElement("ChildElement",
                    new XAttribute("Attribute1", "Hello"),
                    new XAttribute("Attribute2", "World")
                ),
                new XElement("ChildElement",
                    new XAttribute("Attribute1", "Foo"),
                    new XAttribute("Attribute2", "Bar")
                )
            )
        );

I'm after the output "Hello, Foo" using LINQ "." notation.

I can get "Hello" using

xDocument.Element("RootElement").Element("ChildElement").Attribute("Attribute1").Value;

I can get all of the Attributes using

xDocument.Element("RootElement").Elements("ChildElement").Attributes("Attribute1");

How can I get a list of the string values of the attributes so that I can join then as a comma separated list?

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

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

发布评论

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

评论(2

唐婉 2024-08-10 14:14:46
var strings = from attribute in 
                       xDocument.Descendants("ChildElement").Attributes()
              select attribute.Value;
var strings = from attribute in 
                       xDocument.Descendants("ChildElement").Attributes()
              select attribute.Value;
秋叶绚丽 2024-08-10 14:14:46

好的,多亏了 womp,我意识到这是我需要的 Select 方法来获取属性 Value,这样我就可以获得一个字符串数组。因此,进行以下工作。

String.Join(",", (string[]) xDocument.Element("RootElement").Elements("ChildElement").Attributes("Attribute1").Select(attribute => attribute.Value).ToArray());

Ok, so thanks to womp I realised it was the Select method I needed in order to obtain the property Value so I could get an array of strings. Therefore, the following works.

String.Join(",", (string[]) xDocument.Element("RootElement").Elements("ChildElement").Attributes("Attribute1").Select(attribute => attribute.Value).ToArray());
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文