У меня есть файл XML, как приведено нижеДобавить новый элемент в XML с помощью PowerShell
<xml xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product>
<Feature Id="f1" Absent="qqq" Title="test" Level="1">
<ComponentGroupRef Id="ComponentGroupRef1" />
<ComponentGroupRef Id="ComponentGroupRef2" />
<ComponentGroupRef Id="ComponentGroupRef3" />
<ComponentGroupRef Id="ComponentGroupRef4" />
<ComponentGroupRef Id="WindowsFolder1" />
<ComponentGroupRef Id="ComponentGroupRef5" />
<ComponentGroupRef Id="ComponentGroupRef6" />
<ComponentGroupRef Id="ComponentGroupRef7" />
<Feature Id="f2" Display="hidden">
<ComponentRef Id="Component1" />
</Feature>
<FeatureGroupRef Id ="fg1"/>
</Feature>
</Product>
</xml>
нужно добавить элемент между первой особенностью Feature тега ID = f1. Формат элемента я хочу добавить, приводится ниже
<ComponentGroupRef Id="Mycomponentname" />.
Результирующий XML должен выглядеть, как показано ниже
<Feature Id="f1" Absent="qqq" Title="test" Level="1">
<ComponentGroupRef Id="ComponentGroupRef1" />
<ComponentGroupRef Id="ComponentGroupRef2" />
<ComponentGroupRef Id="ComponentGroupRef3" />
<ComponentGroupRef Id="ComponentGroupRef4" />
<ComponentGroupRef Id="WindowsFolder1" />
<ComponentGroupRef Id="ComponentGroupRef5" />
<ComponentGroupRef Id="ComponentGroupRef6" />
<ComponentGroupRef Id="ComponentGroupRef7" />
<ComponentGroupRef Id="Mycomponentname" />
<Feature Id="f2" Display="hidden">
<ComponentRef Id="Component1" />
</Feature>
<FeatureGroupRef Id ="fg1"/>
</Feature>
</Product>
</xml>
Я попытался следующий код для добавления элемента, но это не удается
$filePath="C:\Filename.xml"
[xml]$doc=Get-Content $filePath
$x= $doc.CreateElement("ComponentGroupRef")
$x.SetAttribute('id','Mycomponentname')
$doc.Product.Feature.AppendChild($x)
Ошибка, которую я получаю в последней строке кода, приводится ниже
это работает, но как я могу избежать Xmlns =»" из него – TVSuser1654136
Как вы сохранить его? Что-то вроде этого? '$ doc.save (" C: \ Filename.new.xml ")' – BenH
Да, я сохраняю его с помощью $ doc.save ("C: \ Filename.xml") – TVSuser1654136