VB中的LINQ to XML - 属性名是保留字吗?

时间:2013-09-13 10:32:23

标签: vb.net linq-to-xml

如果已经回答道歉 - 我已经看到了类似的PHP问题,但我的问题是专门针对VB的。

我有一些看起来像这样的XML:

<artist ...>
  <name>XYZ</name>
  <relation-list target-type="artist">
    <relation type-id="5be4c609-9afa-4ea0-910b-12ffb71e3821" type="member of band">
      <target>0dfd6aab-9056-4764-89b0-80bee7c9f998</target>
    </relation>
    ...
  </relation-list>
  </relation-list target-type="url">
    <relation type-id="29651736-fa6d-48e4-aadc-a557c6add1cb" type="wikipedia">
      <target id="713a661b-b33a-4e91-95b3-05e679ab8506">http://en.wikipedia.org/wiki/The_Who</target>
    </relation>
    ...
  </relation-list>
</artist>

我想提取指定目标类型的关系列表中的所有关系。所以我认为有一个类似于以下内容的Where子句会相对容易:

Dim artistrels = From u In response...<relation-list> _
                 Where u.@target-type = "artist"
                 Select ...

但VS2012不喜欢你。@ target-type所以我猜目标类型在某种程度上是一个保留字。我已经尝试过使用各种方法将名称指定为文字(双引号,方括号等)并且还没有找到一种方法(哦,以获取全面的Linq语言语法参考!)。有没有人对这个问题有答案?

1 个答案:

答案 0 :(得分:0)

-是个问题。您必须将您的属性名称放在<>

Dim artistrels = From u In response...<relation-list> _
                 Where u.@<target-type> = "artist"
                 Select ...