2017-06-18 84 views
0

目前我们有一个XML文件,如:如何使用powershell获取特定的xml元素?

<file> 
<dircetory name="test"> 
    <directory name="test1"> 
    <directory name="test2"></directory> 
    </directory> 
</directory> 
<directory name="test2"> 
</directory> 
</file> 

的XML结构并不稳定,但我需要通过name属性来获取XML节点

现在,我得到了“test2的”字符串,尝试获取<directory name="test2"></directory>元素,我可以使用foreach逐个迭代器,但是有没有任何方法可以做到这一点?

感谢

+0

你是什么意思“xml结构不稳定”? –

+0

我的意思是也许有很多子元素 – allencharp

回答

1

您可以使用XPath表达式这样找到相关节点:

//*[@name='test2'] 

然后使用Select-Xml小命令和foreach循环遍历匹配的节点:

foreach($result in Select-Xml -Path document.xml -XPath "//*[@name='test2']"){ 
    # Work with $result.Node in here 
}