加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在VB.NET中使用带有命名空间的LINQ

发布时间:2020-12-17 07:15:33 所属栏目:百科 来源:网络整理
导读:我有这个 XML文件: ?xml version="1.0"?package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd" metadata idNuSpecID/id version1.0.0/version titleNuSpec Sample/title authorsJim Bob/authors ownersBilly Joel/owners licenseUrlh
我有这个 XML文件:

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
  <metadata>
    <id>NuSpecID</id>
    <version>1.0.0</version>
    <title>NuSpec Sample</title>
    <authors>Jim Bob</authors>
    <owners>Billy Joel</owners>
    <licenseUrl>http://url.goes.here</licenseUrl>
    <projectUrl>http://url.goes.there</projectUrl>
    <requireLicenseAcceptance>ture</requireLicenseAcceptance>
    <description>this is a sample nuget.</description>
    <summary>
  </metadata>
</package>

而这段代码:

Module Module1
    Sub Main()
        Dim root As XElement = XElement.Load("c:tmpnuspec.xml")
        Dim tests As IEnumerable(Of XElement) = _
            From el In root.<metadata> _
            Select el
        For Each el As XElement In tests
            Console.WriteLine(el.<id>.Value)
        Next
        Console.ReadKey()
    End Sub
End Module

如果我取出xmlns =“HTTP …”我的代码输出“NuSpecID”,但我找不到一个解决方案,允许我解析/查询这个XML仍然附加名称空间.

我也有一些没有命名空间或有不同名称的文件,我如何确定是否使用一个和哪个使用?

解决方法

您需要在XML文字中使用 import the namespace.

在模块的顶部,放:

Imports <xmlns:ns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">

然后在你的功能:

Dim tests = root.<ns:metadata>

For Each el In tests
    Console.WriteLine(el.<ns:id>.Value)
Next

显然你可以使用任何东西而不是ns.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读