我尝试使用Powershell中的子节点属性修改父节点属性。做这个的最好方式是什么?任何指针都非常感激。下面是代码。该文件的名称是pricefile.xml
<model type="model1" name="default" price="12.12" date="some_value">
<PriceData>
<item name="watch" price="24.28" date="2013-12-01"/>
<item name="toy" price="22.34" date="2013-12-02"/>
<item name="bread" price="24.12" date="2013-12-03"/>
</PriceData>
</model>
我想使用项目名称过滤上面的xml文件。例如,如果我需要项目监视的详细信息,我应该能够在powershell中解析上面的xml并获得以下内容。
<model type="model1" name="watch" price="24.28" date="2013-12-01">
<PriceData>
<item name="watch" />
</PriceData>
</model>
注意如何删除子节点的属性,并使用watch属性重置模型属性。你能告诉我最好的办法吗?
如果我使用以下任何一个命令,我没有输出。
[xml]$item = get-content pricefile.xml
$item.SelectNodes("//item/@*").parentnode
$item.SelectNodes("//item/@*") | where {$_.parentnode}
答案 0 :(得分:0)
在解析/遍历xml文档的类似问题中提供了一个非常优雅的解决方案。 它也适用于在这个问题中遍历树。 以下是另一个问题的链接:
Modify XML Parent Attributes iterating through Child attributes using powershell