2011-09-23 74 views
0

我无法填充XML文件中的对象。我已经复制了一个我几乎完全找到的示例,并更改了变量名称,但是我一直收到“枚举未找到结果”异常。LINQ to 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(path)方法被正确填充。

这里是正在访问的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查询应该返回标题,并且具有所谓的语言代码元素的每个属性的说明,这等于到“en-us”。我有一种感觉,我的问题在于我的XML代码,但我现在已经陷入了很长时间。请帮忙。

回答

2

“en_us”应该是“en-us”:)。

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

身体必须至少有30个字符;你输入了28

那里。现在它超过了28. :)

+0

+1,但你不配作弊SO:P – alf

+0

哇,我不敢相信我错过了那个。 – user961794

+0

Holy C ** p我也不能......我没有看到那个人...... *拍拍自己* :-) – shawty

0

尝试采取点的一个出

Dim itemProps = From p In element...<Property> 

你去3级了,当你只需要往下走2

如果不行尝试只是一个点,因为基本上你的旅行路径在文档根目录下只有1个。

+0

1个点不起作用,2个点给我一个“标识符预期”构建错误。 – user961794

+0

我真的不认为点数代表XML文件中的深层次,但仅仅是LINQ to SQL语法的一部分。 – user961794

+0

如果知道真相,我会随心所欲地出去走走,但我通常不会做VB,所以有时候在C#中语法会抛出我,但是嵌套层次很重要,但它不是用多个。而是用元素/元素调用的多重嵌套。 – shawty