Выбор LINQ-to-XML на основе значений узлов, вопрос новичка - PullRequest
0 голосов
/ 08 марта 2010

Учитывая следующий XML, я хотел бы вернуть все eventtitles, где eventtype id = 23. Мой текущий запрос смотрит только на первый 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

1 Ответ

1 голос
/ 08 марта 2010

Вам нужно позвонить 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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...