2010-06-14 14 views
11

Ho difficoltà ad aggiungere un XmlElement a un elemento non root in PowerShell.PowerShell: Come aggiungere XmlElement a un elemento non root

In sostanza, dato questo xml:

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

Voglio raggiungere questo

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

creo un elemento,

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

Quando provo ad aggiungere questo elemento ad un nodo non-root ie

$clubs.clubs.club += $new 

ottengo

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

Che cosa mi manca?

risposta

23

Provare a utilizzare il metodo AppendChild sull'elemento appropriato. Esistono alternative ad AppendChild come descritto in Create New Nodes in the DOM che ti consentono un maggiore controllo della posizione nell'albero DOM.

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