我有一个包含XML文件的目录。我很快就想通过它们来总结upp存储在一个属性中的值。我已经想出了如何填充我感兴趣的节点。
例如:
(Select-Xml -Path .\*.xml -XPath "//*[@Attribue = 'valueImlookingfor']").Count
此命令为我提供当前目录中所有XML文件中元素的计数,其中“Attribue”中的值为“valueImlookingfor”。
我想总结“属性”的所有值,而不是计算它们。在PowerShell中执行此操作的最佳方法是什么?我是PowerShell的新手,所以这可能是微不足道的,但我不知道......
非常感谢所有提示: - )
答案 0 :(得分:2)
$total = 0; select-xml -path .\*.xml -xpath "//*/@Attribute" | foreach { $total += [int] $_.node.value }; $total
故障:
$total = 0
- 我们将总结这个变量。select-xml -path .\*.xml -xpath ...
- 返回当前文件夹中任何* .xml文件中与给定XPath表达式匹配的所有XML节点的集合。//*/@Attribute
- 返回XML树中任何位置的所有属性节点。| foreach { ... }
- 将select-xml
返回的集合传递('pipe')到foreach
cmdlet。 foreach
在集合中的每个元素上执行给定的代码段。可以通过$_
。$total += [int] $_.node.value
- 将$total
添加到当前属性的值,从字符串转换为整数。; $total
- 最后,返回$total
的值。由于未在任何地方分配,因此将值写入控制台。