Мой вопрос часто задают в нескольких местах, но у меня есть xml без атрибутов, поэтому я не могу использовать эти методы. структура моего XML заключается в следующем:Выберите элементы первого узла XML (linq, C#)
<offers>
<offer>
<seller>
<citizen>
<name>A name</name>
<id>An ID</id>
</citizen>
</seller>
<amount>Number</amount>
<exchange-rate>Rate</exchange-rate>
</offer>
.
.
.
<offer>....
</offer>
</offers>
мне удалось заполнить многоколоночном ListView с этим кодом:
var offers = from o in loaded.Elements("offers").Elements("offer") select o;
foreach (var vmi in offers)
{
ListViewItem item = new ListViewItem();
item = lista1.Items.Add(vmi.Descendants("name").First().Value);
item.SubItems.Add(vmi.Element("amount").Value);
item.SubItems.Add(vmi.Element("exchange-rate").Value);
}
Но теперь, мне нужно выбрать данные, s (название, количество, обменно скорость) между первым <offer></offer>
Не могли бы вы предоставить код для этого на C#? Я попробовал FirstNode или First(), но я застрял. Заранее спасибо!
ОБНОВЛЕНИЕ! Я забыл упомянуть, что знак гражданина может варьироваться в xml. Это гражданин или компания. Вот почему я использовал метод Descendants. Но если вы можете показать мне лучший способ, чтобы справиться с этим. Буду премного благодарен.
Я забыл упомянуть, что гражданин тег может варьируя в XML. Это гражданин или компания. Вот почему я использовал метод Descendants. Но если вы можете показать мне лучший способ, чтобы справиться с этим. Буду премного благодарен. КПП. код, который вы недавно отправили, с моим небольшим изменением (var name = firstOffer.Descendants («name»). First(). Value;) дает ошибку во время выполнения. NullreferenceException в первой строке. Поэтому я удалил часть: .Element ("предлагает"), затем ошибка указывает на строку с методом Descendants. Надеюсь, я понимаю: S – speter
Я ошибся, загрузив xml-файл, поэтому он не сработал. Правильный код ниже. – speter