如何在powershell中对XML元素进行排序 [英] How to sort XML elements in powershell

查看:20
本文介绍了如何在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆