我想知道如何在PowerShell中更改XML节点的级别。
例如,从中:
<root>
<parent>
<child>One</child>
<child>Two</child>
<child>Three</child>
<child>Four</child>
<child>Five</child>
<child>six</child>
</parent>
</root>
到此:
<root>
<parent>
<child>
<grandchild>Two</grandchild>
<grandchild>Three</grandchild>
<grandchild>Four</grandchild>
<grandchild>Five</grandchild>
<grandchild>six</grandchild>
</child>
</parent>
</root>
另外,偏离主题,但是命令行开关Out-Null
是否只忽略输出?它似乎也忽略了我的脚本结果。我正在创建并写入文件,当我尝试打开文件时,我被告知它不存在。但是,当我不忽略输出时,它会成功创建并写入文件,但需要更长的时间。
答案 0 :(得分:0)
<child>
节点。<grandchild>
节点的内容创建新的<child>
节点。<grandchild>
个节点附加到新的<child>
节点。<child>
个节点。<child>
节点附加到<parent>
节点。示例代码:
[xml]$xml = '<root>...</root>'
$child = $xml.CreateElement('child')
$xml.SelectNodes('//child') | % {
$n = $xml.CreateElement('grandchild')
$n.InnerText = $_.InnerText
$child.AppendChild($n)
[void]$_.ParentNode.RemoveChild($_)
}
$xml.SelectNodes('//parent').AppendChild($child)
至于Out-Null
:cmdlet会丢弃success output stream上的所有输出。