這應該是相當容易完成的,但我在編寫PowerShell腳本來編輯由HP的團隊軟件導出功能生成的XML文件時遇到了問題。我認爲這個問題來自於創建只有內容是子元素的元素。沒有InnerText的Powershell XML解析問題?
我在錯誤的地方苦苦追趕AppendChild,InnerTexts在vlan元素下是空的。有人可以幫助我使用必要的powershell xml來完成將這4行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>
很抱歉的多個edits- 得到了我想要的東西。語法有點strange-
$vlan2=$xml.SelectSingleNode("//property[@value='407'] [@id='VlanId']")
$vlan2.value="100"
新問題,怎麼來的,如果我在我的腳本的頂部添加一行:
write-host "Num Args:" $args.length
,然後通過PS1一個變量,它似乎惹SelectSingleNode表示system.object []不包含名爲selectsinglenode的方法?我沒有用args觸摸$ xml變量。我基本上只是想讓vlanid成爲一個命令行參數。我試着做一個函數並使用參數,但它會產生與代碼相同的問題。
知道了 - $ xmldata = xml 感謝所有!
你可以發佈你已經寫了PowerShell的? – MrKWatkins