Запросите XML-файл, чтобы получить некоторые ... First () элементы и полный список некоторых повторяющихся элементов - PullRequest
0 голосов
/ 04 июля 2011

Во-первых, позвольте мне сказать, что я нуб. Я пытаюсь сделать приложение для Windows Phone 7, и основы пока работают довольно хорошо. Но по-прежнему существует большая проблема с составлением списка статей.

Я пытаюсь прочитать файл XML с большим количеством элементов и атрибутов. Часть из них работает (Данные клиента в заголовке), но мне нужен список из всех статей в диапазоне.

Так что на самом деле я использую для заголовка такие команды как:

var queryResult = from item in xml.Descendants("ORDER_HEADER")
    select new ErpItem()
    {
     //Header Data
     OrderId = xml.Descendants("ORDER_INFO").Select(c => c.Element("ORDER_ID").Value).First(),
     PartyId = xml.Descendants("PARTY").Select(c => c.Element("PARTY_ID").Value).First(),
     //....... (more header data to come)
    };
    Items = queryResult.ToList();

Это не проблема для меня, потому что с First() я получаю уникальные данные клиента.

Но позже в моем XML-файле есть некоторые данные, связанные со статьей, потому что XML-файл на самом деле является заказом клиента, который содержит много данных о позиции. Так что метод First() больше не работает, потому что мне нужен каждый элемент статьи.

Итак, есть ли простой способ преобразовать First в например? All? Каждый ...

1 Ответ

0 голосов
/ 04 июля 2011

Во-первых, если вы хотите получить только данные для определенного ORDER_HEADER, вам следует позвонить item.Descendants(…) внутри вашего select.

Во-вторых, если вы не позвоните First(),получить все данные, например, если вы вызвали просто

item.Descendants("ORDER_INFO").Select(c => c.Element("ORDER_ID").Value)

, он вернет значение первого ORDER_ID для всех ORDER_INFO с.

...