LINQ-to-XML selection based on node values, newbie question

Posted by mmcglynn on Stack Overflow See other posts from Stack Overflow or by mmcglynn
Published on 2010-03-08T20:29:21Z Indexed on 2010/03/08 20:36 UTC
Read the original article Hit count: 453

Filed under:
|

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

© Stack Overflow or respective owner

Related posts about linq-to-xml

Related posts about vb.net