[英]Search XML in powershell with colon
我有一個格式的XML:
<val:root>
<bla>
<value>1234</value>
</val:root>
我可以將文件的內容添加到$ xml變量中,但是我遇到了“val:root”的問題。
謝謝你的幫助!
編輯:
我嘗試了$ xml。“val:root”,$ xml.val,$ xml.'val:root'和$ xml。{val:root}。 在Mizo的回答中找到了解決方案:
$ XML。 root .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數據,則可以在偽根中聲明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/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.