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。 –