11

I'm having trouble adding an XmlElement to a non-root element in PowerShell.

Basically, given this xml:

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

I want to achieve this

<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>

I create an element,

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

When I try to add this element to a non-root node i.e.

$clubs.clubs.club += $new

I get

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

What am I missing?

0

1 Answer 1

25

Try using the AppendChild method on the appropriate element. There are alternatives to AppendChild as described in Create New Nodes in the DOM which allow you more control of the location in the DOM tree.

$club = $xml.CreateElement('club')
$club.SetAttribute('name','barracas')
$xml.clubs.AppendChild($club)
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.