2010-10-30 2 views
2

Я не могу понять, почему Enumeration does not yield any resultsLINQ to XML. Перечисление не дало никаких результатов?

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> 

Что я делаю неправильно здесь?

ответ

4

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

Варианты:

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

    <root> 
        <settings> 
        ... 
        </settings> 
        <settings> 
        ... 
        </settings> 
    </root> 
    
Смежные вопросы