我正在尝试把握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)
答案 0 :(得分:2)
我找到了答案here
起初,我不知道这个句法特征被称为“Axis Properties”。
我必须为xml命名空间添加Imports语句:
Imports <xmlns:ns="http://SomeNamespace">
然后您可以查询:
xdoc.Root.<ns:Child>.@Name