我有这个 PowerShell 脚本,其中 XML 文件的值将由脚本设置。当所有子节点都具有唯一名称时,这非常有效。但是,我正在将 XML 文件调整为重复某些节点的文件。现在我在 Powershell 中遇到错误。

我的问题是,如何通过 PowerShell 将 XML 中的第 X 个节点设置为某个值?

简而言之,我的脚本如下所示:

cls

[xml] $xml1 = '<Lvl1>
                    <Lvl2>""</Lvl2>
                    <Lvl2>""</Lvl2>
                </Lvl1>'

$xml1.Lvl1.Lvl2='./'

$xml1.Save("text.xml")

有两次相同的节点 (Lvl2),这就是我在 PowerShell 中收到以下错误的原因:“无法设置“Lvl2”,因为只有字符串可以用作设置 XmlNode 属性的值。”

当我删除一个(Lvl2)节点时,该脚本就像一个魅力。

请指教。

最佳答案

你总是可以使用 .NET 语法,它的作用就像一个魅力。

$xml1.SelectSingleNode('Lvl1/Lvl2[2]').InnerText='./'

关于powershell - 在 Powershell 中将 x XML 节点设置为值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60280990/

10-13 05:57