Linq to XML Не повторяется? - PullRequest
       1

Linq to XML Не повторяется?

0 голосов
/ 25 февраля 2011

У меня есть XML-файл с довольно большой структурой. Я вытаскиваю из него несколько сущностей в нескольких системах, и он динамически обновляется один раз в день.

Я использую запрос Linq, который демонстрирует странное поведение, он возвращается только в том случае, если первая запись в теге сайта соответствует шаблону поиска. Если его номер 2 или 3, он ничего не сможет вернуть. Зачем так себя вести?

Следующая функция, написанная на VB , обрабатывает данные

Public Function xmlSchoolListBySite() As IEnumerable
   Dim doc As XDocument = loadXML()
   Dim loadedPrograms As IEnumerable(Of XElement) = From c In doc.Descendants("Organization") _
                                                         Where c.Descendants("site").Value = MySite.Site.s_Url _ 'contains Result.RawURL.tostring() formatted
                                                         Select c.Element("Title")
        Return loadedPrograms
End Function

Ниже приведен фрагмент XML-структуры

<Organization>
   <Title>MegaCorpUSA</Title>
   <CorpCode>SomeCode</CorpCode>
       <programs>
           <program>program1</program>
        </programs>
        <sites>
            <site>site1.com</site>
            <site>site2.com</site>
            <site>localhost</site>
        </sites>
    </Organization>

1 Ответ

2 голосов
/ 25 февраля 2011

Я думаю, вам нужен метод Any():

where c.Descendants("site").Any(s => s.Value == MySite.Site.s_Url)

В VB, как указал Ахмад:

Where c.Descendants("site").Any(Function(s) s.Value = MySite.Site.s_Url)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...