[英]With XSLT/XPath, how can I match any element in the null namespace?
[英]How do I access an element with xpath with a namespace in powershell?
电源外壳:
$doc = new-object System.Xml.XmlDocument
$doc.Load($filename)
$items = Select-Xml -Xml $doc -XPath '//item'
$items | foreach {
$item = $_
write-host $item.name
}
我没有输出
XML:
<?xml version="1.0" encoding="UTF-8"?>
<submission version="2.0" type="TREE" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:noNamespaceSchemaLocation="TREE.xsd" xmlns="some/kind/of/tree/v1">
<group>
<item></item>
<item></item>
<item></item>
</group>
<submission>
你有一些问题在继续。 首先,您需要在XPath模式中指定命名空间,XML格式不正确(结束标记不是结束标记),而Select-Xml直接返回XmlInfo而不是XmlElement。 尝试这个:
$xml = [xml]@'
<submission version="2.0" type="TREE" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:noNamespaceSchemaLocation="TREE.xsd" xmlns="some/kind/of/tree/v1">
<group>
<item></item>
<item></item>
<item></item>
</group>
</submission>
'@
$ns = @{dns="some/kind/of/tree/v1"}
$items = Select-Xml -Xml $xml -XPath '//dns:item' -Namespace $ns
$items | Foreach {$_.Node.Name}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.