如何在powershell中对XML元素进行排序 [英] How to sort XML elements in powershell
本文介绍了如何在powershell中对XML元素进行排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个 XML:
<project>
<settings>
<setting1 name="s1">foo</setting1>
<setting2 name="s2">bar</setting2>
</settings>
<items>
<item name="a">
<property1>foo1</property1>
<property2>bar2</property2>
</item>
<item name="c">
<property1>foo3</property1>
<property2>bar4</property2>
</item>
<item name="b">
<property1>foo5</property1>
<property2>bar6</property2>
</item>
</items>
</project>
我需要按元素item"的属性name"对xml进行排序.
I need to sort the xml by attribute "name" of element "item".
我正在做这样的事情:
[xml]$myXml = Get-Content -Encoding UTF8 $xmlPath
$myXml | Sort-Object {$_.project.items.item.name}
$myXml.Save($xmlPathSorted)
有没有可能在 PS 中做到那么容易?
Is it possible to do it that easy in PS?
推荐答案
试试这个
# Get the items collection
$items = $myXml.project.items
# Sort the items and store in $orderedItems
$orderedItems = $items.item | Sort name
# Removed existing items from xml variable
$items.RemoveAll()
# Append sorted items
$orderedItems | foreach { $items.AppendChild($_) }
使用
$myxml.InnerXml
您应该看到 item
元素已经排序.
And you should see that the item
elements have been sorted.
这篇关于如何在powershell中对XML元素进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文