【问题标题】:vb.net linq to xml syntax for documents with xml namespace带有 xml 命名空间的文档的 vb.net linq to xml 语法
【发布时间】:2010-08-06 16:10:56
【问题描述】:

我正在尝试掌握 VB.Net 的 linq to xml“内联查询语法”功能

首先我尝试使用这个简单的 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 文件中的 &lt;Root&gt; 元素更改为:

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

现在我似乎不能再使用方便的“轴属性”语法了……我只能让它与显式 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)

【问题讨论】:

    标签: vb.net linq-to-xml


    【解决方案1】:

    我找到了答案here

    一开始,我并不知道这个语法特性叫做“轴属性”。

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

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

    然后你可以查询:

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

    【讨论】:

      猜你喜欢
      • 2011-01-21
      • 1970-01-01
      • 2014-02-07
      • 2020-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多