4
我有這樣的XML文件:在VB.NET使用LINQ與命名空間
<?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:\tmp\nuspec.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。
我也有一些文件沒有命名空間或有一個不同的,我如何確定是否使用一個和哪一個使用?
或者您可以使用'Imports設置默認命名空間,因此您不必每次都指定命名空間時間。 –
sloth
我調整了我的問題,根據我選擇的文件,我有多個名稱空間選項。我如何編寫一個可以具有不同名稱空間的函數? – theB3RV
@ theB3RV你應該知道你的XML使用的是什麼命名空間,這就是命名空間的全部要點。如果您確實知道每個文件包含的命名空間,請使用不同的前綴將它們全部導入模塊的頂部,然後相應地使用它們。如果您不知道名稱空間,這意味着您不關心它們以及忽略它們,然後以「From el In Root.Elements Where el.Name.LocalName =」metadata「的形式編寫XML查詢。選擇el'。 – GSerg