在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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |