PowerShell的XML我在格式的XML:搜索與結腸
<val:root>
<bla>
<value>1234</value>
</val:root>
我能做得到,內容的文件到$ xml變量的,但我有與「VAL麻煩:根」。
感謝您的幫助!
編輯:
我試過$ XML。 「VAL:根」,$ xml.val,$ xml.'val:根」和$ {XML VAL:根}。在Mizo的答案中找到解決方案:
$ xml。 根 .value的
PowerShell的XML我在格式的XML:搜索與結腸
<val:root>
<bla>
<value>1234</value>
</val:root>
我能做得到,內容的文件到$ xml變量的,但我有與「VAL麻煩:根」。
感謝您的幫助!
編輯:
我試過$ XML。 「VAL:根」,$ xml.val,$ xml.'val:根」和$ {XML VAL:根}。在Mizo的答案中找到解決方案:
$ xml。 根 .value的
您的XML文件缺少val
命名空間的聲明。此外,<bla>
元素未終止。
放入<root>
元素的命名空間聲明:
<val:root xmlns:val="urn:dummy">
然後,你可以做
PS C:\> $xml = [xml] (get-content test.xml)
PS C:\Users\mizo\test> $xml.root.value
1234
如果你沒有對XML數據的控制,你可以聲明作爲變通方法的dummy根中的val
名稱空間:
$xml = [xml] ("<dummyroot xmlns:val='urn:dummy'>" +
(get-content test.xml) +
"</dummyroot>")
然後,您可以訪問的元素:
PS C:\> $xml.dummyroot.root.value
1234
更換urn:dummy
與相關標識,如果你想。
所以我要好好看看這個問題一刺,即使沒有所有的信息。根據您提供的示例XML,您的XML格式不正確。你至少有兩個問題。第一個是沒有匹配關閉標籤的標籤。第二個是你使用一個名字空間而不用聲明它。爲了解決這個問題,改變這種:
<val:root>
要這樣:
<val:root xmlns:val="http://www.w3.org/TR/html4/">
或者用一個更合適的URI,如果你希望。
您只需在加載XML文件時定義名稱空間。
http://huddledmasses.org/xpath-and-namespaces-in-powershell/
「但我有難同 」VAL:根「」 - 需要更多的細節。什麼麻煩?你想做什麼?什麼不起作用?有錯誤嗎?你使用什麼PS命令?預期的行爲是什麼?實際行爲如何不同? – EBGreen
我的猜測是你得到一個未聲明的命名空間錯誤? – EBGreen
對不起,應該更詳細。增加了一些信息。感謝您幫助EBGreen。 –