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}