valor obtener nodo net modificar manejo leer eliminar datos agregar xml powershell powershell-v2.0

obtener - modificar xml java



¿Cómo cambiar el valor del atributo Elemento XML utilizando PowerShell? (2)

Intenta lo siguiente:

$nodes = $xml.SelectNodes("/office/staff"); foreach($node in $nodes) { $node.SetAttribute("branch", "New York"); }

Esto recorrerá todos los nodos devueltos por SelectNodes () y modificará cada uno.

Estoy tratando de acceder y cambiar el atributo particular de la etiqueta XML

XML:

<office> <staff branch="Hanover" Type="sales"> <employee> <Name>Tobias Weltner</Name> <function>management</function> <age>39</age> </employee> <employee> <Name>Cofi Heidecke</Name> <function>security</function> <age>4</age> </employee> </staff> <staff branch="London" Type="Technology"> <employee> <Name>XXXX</Name> <function>gement</function> <age>39</age>

Del ejemplo anterior, quiero imprimir el atributo de rama y luego quiero cambiarlo con un valor como Nueva York en todo el XML y usar el código a continuación para hacerlo.

$xml=New-Object XML $xml.Load("C:/FE6Work.xml") $node=$xml.SelectNodes("/office/staff") write-output $node.branch $node.branch="New York"

Pero obtener un error diciendo que no puede encontrar el elemento.

¿Puede ayudarme alguien, por favor?


Puede acceder a los atributos directamente en el objeto [xml] esta manera:

# C:/temp> $xml = [xml](Get-Content C:/FE6Work.xml) # C:/temp> $xml.office.staff branch Type employee ------ ---- -------- Hanover sales {Tobias Weltner, Cofi Heidecke} London Technology {XXXX, Cofi} # C:/temp> $xml.office.staff | foreach{$_.branch = "New York"} # C:/temp> $xml.office.staff branch Type employee ------ ---- -------- New York sales {Tobias Weltner, Cofi Heidecke} New York Technology {XXXX, Cofi}