Linq To Xml: перечисление не дало результатов - PullRequest
0 голосов
/ 23 февраля 2012

Это мой xml-макет:

 <Data>
      <Record />
           <PCI>
                <FirstName></FirstName>
                <LastName></LastName>
           </PCI>
      </Record>
      <Record />
           <PCI>...</PCI>
      </Record>
      <Record />
           <PCI>...</PCI>
      </Record>
</Data>

Запрос, который я пытаюсь использовать:

var Data = from Record in queryXml.Descendants("Record")
           select new
           {
              lname = PCI.Element("LastName").Value
           };        

При отладке переменной Data я получаю Enumeration Yielded No Enumeration. Я попытался переименовать данные и записи и ввод в метод Descendants, но я не могу найти то, что работает.

Ответы [ 2 ]

0 голосов
/ 24 февраля 2012

Вы говорите, что именно так XML возвращается из веб-службы, которую вы используете.Это плохо сформированный XML.Используя приведенный выше пример:

<Data>
  <Record /> //<-- this closes the Record element
       <PCI> //<-- PCI would not be a child of Record, but a child element of Data
            <FirstName></FirstName>
            <LastName></LastName>
       </PCI>
  </Record> //<-- This is invalid as written unless you 
            //  remove the '/' from Record above.

Ваш веб-сервис должен вернуть ваши данные следующим образом:

 <Data>
  <Record>
       <PCI>
            <FirstName></FirstName>
            <LastName></LastName>
       </PCI>
  </Record>
  <Record>
       <PCI>...</PCI>
  </Record>
  <Record>
       <PCI>...</PCI>
  </Record>
</Data>
0 голосов
/ 23 февраля 2012

Возможно, это опечатка, но <Record/> сделает запись пустой.Вы должны сказать <Record>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...