基于节点值的 LINQ 到 XML 选择,新手问题

发布于 2024-08-24 03:51:45 字数 971 浏览 9 评论 0原文

给定以下 XML,我想返回 eventtype id = 23 的所有 eventtitles。我当前的查询仅查看第一个 eventtype,所以返回错误的结果。

    <event>
      <eventtitle>Garrison Keillor</eventtitle>
      <eventtypes>
        <eventtype id="24"/>
        <eventtype id="23"/>
      </eventtypes>
    </event>
    <event>
      <eventtitle>Joe Krown Trio featuring Walter Wolfman Washington</eventtitle>
      <eventtypes>
        <eventtype id="23"/>
      </eventtypes>
    </event>

LINQ 查询:

Dim query = _
From c In calXML...<event> _
Where c...<eventtypes>.<eventtype>.@id = "23" _
Select c.<eventtitle>.Value, c.<eventlocation>.Value


For Each item In query
    Response.Write("<h3>" & item.eventtitle & "</h3>")
    Response.Write(item.eventlocation & "<br />")
Next

Given the following XML, I would like to return all eventtitles where the eventtype id = 23. My current query only looks at the first eventtype, so returns the wrong result.

    <event>
      <eventtitle>Garrison Keillor</eventtitle>
      <eventtypes>
        <eventtype id="24"/>
        <eventtype id="23"/>
      </eventtypes>
    </event>
    <event>
      <eventtitle>Joe Krown Trio featuring Walter Wolfman Washington</eventtitle>
      <eventtypes>
        <eventtype id="23"/>
      </eventtypes>
    </event>

LINQ query:

Dim query = _
From c In calXML...<event> _
Where c...<eventtypes>.<eventtype>.@id = "23" _
Select c.<eventtitle>.Value, c.<eventlocation>.Value


For Each item In query
    Response.Write("<h3>" & item.eventtitle & "</h3>")
    Response.Write(item.eventlocation & "<br />")
Next

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

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

发布评论

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

评论(1

一抹微笑 2024-08-31 03:51:45

您需要调用 Any,如下所示:

Dim query = _ 
From c In calXML...<event> _ 
Where c.<eventtypes>.<eventtype>.Any(Function(t) t.@id = "23") _ 
Select c.<eventtitle>.Value, c.<eventlocation>.Value 

You need to call Any, like this:

Dim query = _ 
From c In calXML...<event> _ 
Where c.<eventtypes>.<eventtype>.Any(Function(t) t.@id = "23") _ 
Select c.<eventtitle>.Value, c.<eventlocation>.Value 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文