LINQ в XML, извлечение данных

#vb.net #linq-to-xml

#vb.net #linq-to-xml

Вопрос:

У меня есть этот XML:

 <root>
      <data name="lnkViewResultResource1.Text" xml:space="preserve">
    <value>bekijk de resultaten</value>
  </data>
  <data name="lnkVoteResource1.Text" xml:space="preserve">
    <value>stem</value>
  </data>
  <data name="number of results" xml:space="preserve">
    <value>er waren reeds {0} stemmen op deze poll {1}</value>
  </data>
</root>
  

Я хочу получить значения «data», и для этого я использовал:

 Public Shared Function getlabels(ByVal filename As String) As Array
    Dim labels = From l In XElement.Load(filename).Descendants("root").Elements("data") Select l
    Return labels.ToArray
  

Но, к сожалению, это не работает, он ничего не получает.
Есть идеи?
Заранее спасибо.

Alf.

Ответ №1:

Вы загружаете <root> XElement и запрашиваете у него вызываемых потомков root . Просто избавьтесь от Descendants("root") вызова, и все должно быть в порядке.

С другой стороны, выражение запроса довольно бессмысленно… просто используйте:

 Return XElement.Load(filename).Elements("data").ToArray
  

Ответ №2:

Попробуйте

 Dim labels = From l In XElement.Load(filename).Descendants("data") Select l