XElement анализирует мой XML-файл как один огромный элемент, как мне это исправить?

1

Поэтому я пытаюсь проанализировать некоторые XML, которые возвращаются из вызова REST API. XML выглядит так (со многими другими <link>):

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response status="Ok">
<links>
<link id="79380" hint="Some Text" linkDescription="This is the GET url for this Customer." link="/customer/79380" httpMethod="GET"/>
</links>
</response>

Я загружаю файл XML, используя следующий код:

Stream resStream = response.GetResponseStream();
StreamReader reader = new StreamReader(resStream);

XElement doc = XElement.Load(reader);

Затем я просматриваю элементы следующим образом:

IEnumerable<XElement> List =
   from el in doc.Descendants("links") select el;

foreach (XElement e in List)
{
   test += e.ToString();
}

Он проходит только один раз, а тест - это просто строка, содержащая весь XML файл. Моя цель - получить значение атрибута "id" от каждого элемента и поместить его в список.

Я пробовал разные вещи, и я не могу ничего вернуть, кроме одной огромной струны.

Теги:
linq-to-xml

1 ответ

1

Попробуй это:

var idList = doc.Descendants("link").Select(x => (int)x.Attribute("id"));
  • 0
    Это сработало! Спасибо! Не могли бы вы объяснить, что я делаю неправильно? Я все еще изучаю этот материал LINQ to XML.
  • 1
    если вы хотите, чтобы элементы ссылки использовали doc.Descendants("link") , вы использовали doc.Descendants("links") и именно поэтому вы получаете элементы links вместо link

Ещё вопросы

Сообщество Overcoder
Наверх
Меню