PowerShell:如何将XmlElement添加到非根元素

时间:2010-06-14 22:54:59

标签: xml powershell

我在向PowerShell中的非根元素添加XmlElement时遇到了问题。

基本上,给定xml:

<clubs>
        <club name="boca" position="1">
                <field>bombonera</field>
                <field>bombonerita</field>
        </club>
        <club name="racing" position="19">
                <field>cilindro</field>
        </club>
</clubs>

我想实现这个

<clubs> 
        <club name="boca" position="1"> 
                <field>bombonera</field> 
                <field>bombonerita</field> 
        </club> 
        <club name="racing" position="19"> 
                <field>cilindro</field> 
        </club> 
        <club name="barracas" />
</clubs>

我创建了一个元素

$new = $clubs.CreateElement("barracas")

当我尝试将此元素添加到非根节点时,即

$clubs.clubs.club += $new

我得到了

Cannot set "club" because only strings can be used as values to set XmlNode properties.

我错过了什么?

1 个答案:

答案 0 :(得分:24)

尝试在相应的元素上使用 AppendChild 方法。如Create New Nodes in the DOM中所述,还有AppendChild的替代方法,可以让您更好地控制DOM树中的位置。

$club = $xml.CreateElement('club')
$club.SetAttribute('name','barracas')
$xml.clubs.AppendChild($club)