2010-10-30 116 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>