LINQ to XML:获取元素的子值

发布于 2024-10-20 01:29:56 字数 913 浏览 1 评论 0原文

好吧,这个是我的 XML 文件

  <?xml version="1.0" encoding="utf-8"?>
<config>
  <setup>
    <Test>10</Test>
    <Copy>
      <Descr>AA</Descr>
      <Descr>BB</Descr>
    </Copy>
  </setup>
</config>

,这个是我的 LINQ 查询 :(

Dim query = From q In XElement.Load("\MyXml.xml").Elements("setup") _
            Where q.Element("Test").Value = "SomeValue" _
            Select New With {.Test = q.Element("Test").Value, _
                             .CopyDescr = q.Element("Copy/Descr").Value}

不幸的是,这个会产生以下直接错误。

The '/' character, hexadecimal value 0x2F, cannot be included in a name.

所以我的问题是,如何获取 << 中包含的子值? Description> 也没有出现错误?您知道吗,我很乐意将 CopyDecr 中包含的值加载到 List of(String) 中以供稍后使用用法...

提前致谢!

Well, this one is my XML file

  <?xml version="1.0" encoding="utf-8"?>
<config>
  <setup>
    <Test>10</Test>
    <Copy>
      <Descr>AA</Descr>
      <Descr>BB</Descr>
    </Copy>
  </setup>
</config>

and this one is my LINQ query :(

Dim query = From q In XElement.Load("\MyXml.xml").Elements("setup") _
            Where q.Element("Test").Value = "SomeValue" _
            Select New With {.Test = q.Element("Test").Value, _
                             .CopyDescr = q.Element("Copy/Descr").Value}

Unfortunately, this one, produces the following straight-forward error.

The '/' character, hexadecimal value 0x2F, cannot be included in a name.

So my question is, how can i get the child values contained in the <Description> too, without getting the error? You see i would love to load the Values contained in the CopyDescr to a List of(String) for a later usage...

Thanks in advance!

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

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

发布评论

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

评论(2

岛徒 2024-10-27 01:29:56

您可以使用 XPath:

q.XPathSelectElements("Copy/Descr")

但是这将返回一个元素列表。可能您需要以某种方式将它们连接在一起,因此您的代码将是:

.CopyDescr = String.Join( "," ,
   from qq in q.XPathSelectElements("Copy/Descr") select qq.Value
);

You can use XPath:

q.XPathSelectElements("Copy/Descr")

However this will return a list of elements. Probable you will need to join them together somehow, so your code is going to be:

.CopyDescr = String.Join( "," ,
   from qq in q.XPathSelectElements("Copy/Descr") select qq.Value
);

啊哈!我刚刚找到了。 后代成功了。

.CopyDescr = q.Descendants("Descr")

Aha! I just found it. The Descendants does the trick.

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