2011-06-14 28 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