2011-06-14 29 views
1

這是在以下問題的變化:PowerShell的添加的XmlElement作爲第一個孩子

PowerShell: How to add XmlElement to a non-root element

所以我會用數據在這一問題用的OP運行。鑑於以下XML片段:

<clubs> 
</clubs> 

<clubs /> 

我試圖這樣做,我得到的XML看起來像被添加的第一個元素:

<clubs> 
    <club name="barracas" rating="awesome" /> 
</clubs> 

到目前爲止,我曾嘗試過:追加,插入後(雖然我不是100%確定它是如何工作的)

$newNode = $xml.CreateElement("club") 
$newNode.SetAttribute("name", "barracas"); 
$newnode.SetAttribute("rating", "awesome"); 
$xml.clubs.Append($newnode) 
$xml.clubs.InsertAfter($newNode, $xml.clubs) 

回答

3

$xml.clubs是此場景中的字符串,而不是XmlNode。試試這個:

$xml.FirstChild.AppendChild($newNode) 

當然,如果元素更遠處的樹,你可能會更好使用SelectSingleNode()方法

+0

嗯,這並沒有爲我工作。我最終做了一個搜索和替換,似乎解決了我的問題。 – coson 2011-06-15 16:59:48

+0

我不得不在另一個腳本上做類似的事情,事實證明這個*做了*工作。不幸的是,作爲PS noob,我承認當你第一次發佈時,我沒有看到你的解決方案的智慧。乾杯。 – coson 2011-06-21 21:08:31