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