LINQ to XML。枚举没有结果

时间:2011-09-23 18:59:59

标签: vb.net linq linq-to-xml

我无法从XML文件填充对象。我已经复制了一个我几乎完全找到的示例,变量名称已更改,但我一直收到“枚举无结果”异常。

这是我的代码:

    Dim element As XElement = XElement.Load(path)

    Dim itemProps = From p In element...<Property> _
                Where p.<LanguageCode>.Value = "en_us" _
                Select p.<Title>.Value, p.<Description>.Value

使用断点,我已确认使用XElement.Load(路径)方法正确填充了'element'变量。

以下是正在访问的XML文件:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Items>
  <Item ItemID="1">
    <Property ItemPropertyID="1">
      <Title>Title1</Title>
      <Description>Description1</Description>
      <LanguageCode>en-us</LanguageCode>
    </Property>
  </Item>
  <Item ItemID="2">
    <Property ItemPropertyID="2">
      <Title>Title2</Title>
      <Description>Description2</Description>
      <LanguageCode>en-us</LanguageCode>
    </Property>
  </Item>
  <Item ItemID="3">
    <Property ItemPropertyID="3">
      <Title>Title3</Title>
      <Description>Description3</Description>
      <LanguageCode>en-us</LanguageCode>
    </Property>
  </Item>
  <Item ItemID="4">
    <Property ItemPropertyID="4">
      <Title>Title4</Title>
      <Description>Description4</Description>
      <LanguageCode>en-us</LanguageCode>
    </Property>
  </Item>
  <Item ItemID="5">
    <Property ItemPropertyID="5">
      <Title>Title5</Title>
      <Description>Description5</Description>
      <LanguageCode>en-us</LanguageCode>
    </Property>
  </Item>
  <Item ItemID="6">
    <Property ItemPropertyID="6">
      <Title>Title6</Title>
      <Description>Description6</Description>
      <LanguageCode>en-us</LanguageCode>
    </Property>
  </Item>
</Items>

本质上,XML查询应该返回每个属性的标题和描述,其中包含一个名为Language Code的元素,它等于“en-us”。我有一种感觉,我的问题在于我的XML代码,但我已经被困在这里很长一段时间了。请帮忙。

2 个答案:

答案 0 :(得分:2)

“en_us”应为“en-us”:)。

  

糟糕!无法提交您的答案,因为:

     

正文必须至少30个字符;你进入了28

有。现在它超过了28. :)

答案 1 :(得分:0)

尝试从

中取出一个点
    Dim itemProps = From p In element...<Property>

当你只需要下降2时,你的3级会下降。

如果这不起作用,只尝试一个点,因为基本上你旅行的路径只比文件的根目录低1。