如何計算擴展節點的名稱空間聲明的內容?使用Linq讀取名稱空間中的XML節點
我想回到所有的子節點下:GPO->用戶 - > ExtensionData->擴展
<?xml version="1.0" encoding="utf-16"?>
<GPO xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.microsoft.com/GroupPolicy/Settings">
<User>
<VersionDirectory>4</VersionDirectory>
<VersionSysvol>4</VersionSysvol>
<Enabled>true</Enabled>
<ExtensionData>
<Extension xmlns:q1="http://www.microsoft.com/GroupPolicy/Settings/Scripts" xsi:type="q1:Scripts">
<q1:Script>
<q1:Command>Logon.cmd</q1:Command>
<q1:Type>Logon</q1:Type>
<q1:Order>0</q1:Order>
<q1:RunOrder>PSNotConfigured</q1:RunOrder>
</q1:Script>
</Extension>
<Name>Scripts</Name>
</ExtensionData>
</User>
<LinksTo>
<SOMName>an interesting data value</SOMName>
<SOMPath>some data value</SOMPath>
<Enabled>true</Enabled>
<NoOverride>false</NoOverride>
</LinksTo>
</GPO>
這是我的嘗試:
Dim NS As XNamespace = "http://www.microsoft.com/GroupPolicy/Settings/Scripts"
Dim UserPolCount = XDoc.Descendants(NS + "Extension").First()
我得到以下錯誤:序列不包含任何元素
此外,我提供的XML示例只是一個小片段,ExtensionData-> Extension節點可以嵌套在不同的區域,所以我希望能找到方法指定完整路徑。
謝謝
謝謝你的例子。你能告訴我,我怎麼指定路徑:GPO->用戶 - >擴展數據 - >擴展,同樣GPO->計算機 - >擴展數據 - >擴展 – Ben 2012-02-28 10:53:33
更新答案。 – DaveShaw 2012-02-28 11:27:52