我有一个简单的XML文档。如果可能的话,我想使用select-xml来扩展("foo","bar")和("baz","zab")对。它是定位的吗?如何定位的?
<?xml version="1.0" encoding="UTF-8"?>
<tag>
<outer>
<a>foo</a>
<b>bar</b>
</outer>
<outer>
<a>baz</a>
<b>zab</b>
</outer>
</tag>我遇到的问题是,对select-xml的连续调用丢失了之前调用select-xml和AFAIK的上下文,它返回的节点的顺序是未定义的,所以只压缩两个列表似乎是不可用的。或者,它返回的节点的顺序就是文档中的顺序,这是错误的吗?
发布于 2011-10-31 17:54:28
您可以读取该文件:
$xml = [xml](Get-Content .\test.xml)然后使用:
$xml.tag.outer或者像这样:
foreach ($outer in $xml.tag.outer)
{
$outer.a
$outer.b
}使用Select-Xml:
Clear-Host
$InputText = @"
<?xml version="1.0" encoding="UTF-8"?>
<tag>
<outer>
<a>foo</a>
<b>bar</b>
</outer>
<outer>
<a>baz</a>
<b>zab</b>
</outer>
</tag>
"@
$xml = [xml]($InputText)
$nodes = Select-Xml -Xml $xml -XPath "//outer"
foreach ($node in $nodes)
{
$node.node.a
}https://stackoverflow.com/questions/7951757
复制相似问题