LINQ to XML. Перечень не дал результатов? - PullRequest
2 голосов
/ 30 октября 2010

Я не могу понять, почему Enumeration does not yield any results

Dim Configuration = From Setup In XElement.Load("C:\xml\setup.xml").Elements("settings")
                    Select Setup
For Each Setting As String In Configuration
    'Do something
Next

А вот XML-файл, расположенный по адресу C:/xml/setup.xml

<?xml version="1.0" encoding="utf-8"?>
<settings>
  <columns>10</columns>
  <rows>3</rows>
  <thumbWidth>1024</thumbWidth>
  <thumbHeight>768</thumbHeight>
  <thumbPadding>40</thumbPadding>
  <videoWidth>181</videoWidth>
  <videoHeight>136</videoHeight>
  <CaptionPosition>top</CaptionPosition>
  <Autoplay>no</Autoplay>
  <Delay>6</Delay>
  <Target>_blank</Target>
</settings>

Что я здесь не так делаю?

1 Ответ

4 голосов
/ 30 октября 2010

Вы вызвали XElement.Load, который вернет сам элемент settings. Другими словами, вы в настоящее время ищете элементы с именем settings внутри элемента settings.

Параметры:

  • Используйте XDocument.Load вместо
  • Просто используйте сам загруженный XElement вместо вызова Elements - с корневым элементом settings, в любом случае может быть только один из них.
  • Сделайте так, чтобы ваш XML-документ имел корневой элемент, например

    <root>
      <settings>
      ...
      </settings>
      <settings>
      ...
      </settings>
    </root>
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...