电源外壳:
- $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}