我的xml看起来像这样:
test_utils
我需要用一个新的子节点填充每个<ArrayOfConfig>
<Config>
<!--stuff-->
</Config>
<Config>
<!--stuff-->
</Config>
</ArrayOfConfig>
节点,使其看起来像:
Config
我已尝试运行以下Powershell:
<ArrayOfConfig>
<Config>
<!--stuff-->
<NewChild>foo</NewChild>
</Config>
<Config>
<!--stuff-->
<NewChild>foo</NewChild>
</Config>
</ArrayOfConfig>
运行此类工作,它只将子节点添加到第二个配置。例如:
$doc = New-Object System.Xml.XmlDocument
$doc.Load('C:\temp\Configs.xml')
$child = $doc.CreateElement("NewChild")
$child.InnerText = "foo"
$doc.ArrayOfConfig.Config.AppendChild($child)
$doc.Save('C:\temp\Configs.xml')
<ArrayOfConfig>
<Config>
<!--stuff-->
</Config>
<Config>
<!--stuff-->
<NewChild>foo</NewChild>
</Config>
</ArrayOfConfig>
的{{1}}子节点数量不尽相同,因此我无法进行任何静态分配。如何迭代Config
的子项并确保每个子项正确获取新的子节点?
答案 0 :(得分:1)
$doc = New-Object System.Xml.XmlDocument
$doc.Load('C:\temp\Configs.xml')
foreach($config in $doc.SelectNodes('//Config'))
{
$child = $doc.CreateElement("NewChild")
$child.InnerText = "foo"
$config.AppendChild($child)
}
$doc.Save('C:\temp\Configs.xml')