У меня есть следующий XML-документ, который я хотел бы проанализировать в DataSet.Анализ XML с Linq
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<Response Status="OK">
<Item>
<Field Name="ID">767147519</Field>
<Field Name="Name">Music</Field>
<Field Name="Path">Family\Music</Field>
<Field Name="Type">Playlist</Field>
</Item>
</Response>
Я хочу получить значения атрибутов для ID, Name и Path.
Ниже то, что я пытался:
Dim loaded As XDocument = XDocument.Load(uriString)
Dim name = From c In loaded.Descendants("Item") Select c
For Each result In name
Dim str1 = result.Attribute("ID").Value 'Returns Nothing and causes a validation error
Dim str2 = result.Value ' Returns all the attribute values in one long string (ie "767147519MusicFamilyPlaylist")
Next
Любая помощь будет принята с благодарностью.
Спасибо,
Matt
EDIT:
После одного из приведенных ниже ответов, которые я пытался реализовать анонимный тип в моей Linq, однако я продолжаю встретив ошибку
Object reference not set to an instance of an object.
Мой обновленный код выглядит следующим образом:
Dim name = From c In loaded.Descendants("Item") Select c Select sID = c.Element("Field").Attribute("Name").Value, sName = c.Attribute("ID").Value.FirstOrDefault
Dim Id As String = String.Empty
For Each result In name
Id = result.sID
Next
Я думаю, что эта ошибка означает, что атрибут («ID») не может быть найден, поэтому я попытался несколько вариантов этого с аналогичными результатами.
Может ли кто-нибудь определить, куда я иду, и указать мне в правильном направлении.
Спасибо,
Matt
Я обновил мой вопрос, чтобы показать моя попытка реализовать анонимный тип, я столкнулся с ошибкой ссылочной ссылки объекта (см. обновленный вопрос), любая помощь в определении причины этой ошибки была бы весьма признательна. – Lima
Также добавлен новый тег, приложение находится в VB.Net, поэтому примеры в VB будут оценены, но любая помощь будет отличной. – Lima
Вы говорите, что считаете, что эта ошибка означает, что атрибут «ID» не может быть найден, но проблема в том, что ** нет атрибута «ID» **. Существует элемент _element_ под названием «Поле» с именем _attribute_ под названием «Имя». Атрибут Name имеет значение _value_ «ID». Ваш код пытается сделать не то. Вам нужно получить '.Value' элемента Field, где' .Attribute («Name»). Значение == «ID» '. Не значение атрибута «ID», потому что такой вещи нет. –