如何使用 Powershell 按“元组”列表(键入的“整数”)的第二个节点对该 xml 进行降序排序。
因此结果将是 xml,但第一个元素将是 COMPUTERSF34,然后是 COMPUTER123..
<Result>
<Tuple>
<Answer type="string">COMPUTERSF34</Answer>
<Answer type="integer">93</Answer>
</Tuple>
<Tuple>
<Answer type="string">NYCCOMPUTER01</Answer>
<Answer type="integer">44</Answer>
</Tuple>
<Tuple>
<Answer type="string">COMPUTER_05</Answer>
<Answer type="integer">45</Answer>
</Tuple>
<Tuple>
<Answer type="string">COMPUTER56</Answer>
<Answer type="integer">38</Answer>
</Tuple>
<Tuple>
<Answer type="string">COMPUTER123</Answer>
<Answer type="integer">51</Answer>
</Tuple>
...
</Result>
Run Code Online (Sandbox Code Playgroud)
尝试这个:
$xml = [xml]@'
<Result>
<Tuple>
<Answer type="string">COMPUTERSF34</Answer>
<Answer type="integer">93</Answer>
</Tuple>
<Tuple>
<Answer type="string">NYCCOMPUTER01</Answer>
<Answer type="integer">44</Answer>
</Tuple>
<Tuple>
<Answer type="string">COMPUTER_05</Answer>
<Answer type="integer">45</Answer>
</Tuple>
<Tuple>
<Answer type="string">COMPUTER56</Answer>
<Answer type="integer">38</Answer>
</Tuple>
<Tuple>
<Answer type="string">COMPUTER123</Answer>
<Answer type="integer">51</Answer>
</Tuple>
</Result>
'@
$sorted = $xml.Result.Tuple | sort {[int]$_.Answer[1].'#text'} -desc
$lastChild = $sorted[-1]
$sorted[0..($sorted.Length-2)] | Foreach {$xml.Result.InsertBefore($_,$lastChild)}
$xml.Save('c:\foo.xml')
Run Code Online (Sandbox Code Playgroud)
技巧是获取每个已排序的节点(最后一个除外)并将其插入到新的(排序后)最后一个节点之前。
| 归档时间: |
|
| 查看次数: |
3503 次 |
| 最近记录: |