Это должно быть довольно легко выполнить, но у меня возникают проблемы при написании сценария powershell для редактирования файла XML, созданного функцией экспорта программного обеспечения HP для совместной работы.Я полагаю, что проблема связана с созданием элементов, единственное содержимое которых является вложенными элементами.
Я борюсь с AppendChild в неправильном месте, и InnerTexts является пустым под элементом vlan.Может ли кто-нибудь помочь мне с PowerShell xml, необходимым для добавления этих четырех строк xml в team.xml ниже?
<vlan>
<property id='VlanId' value='3'/>
<property id='VlanName' value='MISC'/>
</vlan>
Вот сокращенное содержимое team.xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<teamingconfig>
<version UtilityVersion='9.90.0.17' ScriptVersion='3.1'/>
<!-- <team> element 1 -->
<team relnics='1 2'>
<property id='TeamName' value='HP Network Team #1'/>
<property id='OpMode' value='FailOnFault'/>
<!-- <vlan> element 1 -->
<vlan>
<property id='VlanId' value='1'/>
<property id='VlanName' value='MGMT'/>
</vlan>
<!-- <vlan> element 2 -->
<vlan>
<property id='VlanId' value='2'/>
<property id='VlanName' value='APPS'/>
</vlan>
</team>
</teamingconfig>
Извините за множественные правки - Получил то, что хотел.Синтаксис немного странный -
$vlan2=$xml.SelectSingleNode("//property[@value='407'] [@id='VlanId']")
$vlan2.value="100"
Новая проблема, как получится, если я добавлю строку, как в верхней части моего скрипта:
write-host "Num Args:" $args.length
, а затем передам ps1 переменную, этоКажется, что-то напутало с SelectSingleNode, говоря, что system.object [] не содержит метод с именем selectsinglenode?Я не касаюсь переменной $ xml с аргументами.Я просто пытаюсь, например, чтобы vlanid был аргументом командной строки.Я попытался создать функцию и использовать param, но это привело к той же проблеме с кодом.
Понятно - $ xmldata = xml Спасибо всем!