vb.net linq to xml语法,用于包含xml命名空间的文档

时间:2010-08-06 16:10:57

标签: vb.net linq-to-xml

我正在尝试把握linq到xml'内联查询语法'的VB.Net功能

首先我尝试使用这个简单的xml文件:

    <?xml version="1.0" encoding="utf-8" ?>
    <Root>
       <Child Name="somename">
          <SomeAttribute>SomeValue</SomeAttribute>
       </Child>
    </Root>

这个xml在加载到XDocument中时,可以按如下方式加载和查询:

    Dim xdoc = XDocument.Load("sample.xml")
    Console.WriteLine(xml.Root.<Child>.@Name)

然后我将示例xml文件中的<Root>元素更改为:

    <Root xmlns="http://SomeNamespace">

现在我似乎无法使用方便的'Axis Properties'语法......我只能使用显式XElement语法:

    Dim ns As XNamespace = "http://SomeNamespace"
    ' works, but I would like to use the same syntax as above...
    Console.WriteLine(xdoc.Descendants(ns + "Child").First().Attribute("Name").Value)

1 个答案:

答案 0 :(得分:2)

我找到了答案here

起初,我不知道这个句法特征被称为“Axis Properties”。

我必须为xml命名空间添加Imports语句:

Imports <xmlns:ns="http://SomeNamespace">

然后您可以查询:

xdoc.Root.<ns:Child>.@Name