Foros del Web » Programación para mayores de 30 ;) » .NET »

Eliminar elementos de un XML

Estas en el tema de Eliminar elementos de un XML en el foro de .NET en Foros del Web. Hola, tengo un XML con la siguiente estructura (simplificada, el original tiene más de 600 tags): <?xml version="1.0" standalone="yes"?> <NewDataSet> <Table1> <DNI>00000000J</DNI> <SUJPASIVO>FERNANDEZ GOMEZ ANA ...
  #1 (permalink)  
Antiguo 20/03/2016, 04:12
 
Fecha de Ingreso: agosto-2012
Mensajes: 5
Antigüedad: 11 años, 8 meses
Puntos: 1
Eliminar elementos de un XML

Hola,

tengo un XML con la siguiente estructura (simplificada, el original tiene más de 600 tags):

<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<Table1>
<DNI>00000000J</DNI>
<SUJPASIVO>FERNANDEZ GOMEZ ANA ISABEL</SUJPASIVO>
<DOMICILIO>CL MAYOR 12</DOMICILIO>
<MUNICIPIO>BRUNETE</MUNICIPIO>
<PROVINCIA>MADRID</PROVINCIA>
<CP>28690</CP>
</Table1>
<Table1>
<DNI>00000001J</DNI>
<SUJPASIVO>FERNANDEZ GOMEZ MINERVA</SUJPASIVO>
<DOMICILIO>CL MAYOR 12</DOMICILIO>
<MUNICIPIO>BRUNETE</MUNICIPIO>
<PROVINCIA>MADRID</PROVINCIA>
<CP>28690</CP>
</Table1>
<Table1>
<DNI>00000001J</DNI>
<SUJPASIVO>FERNANDEZ GOMEZ MINERVA</SUJPASIVO>
<DOMICILIO>CL MAYOR 12</DOMICILIO>
<MUNICIPIO>BRUNETE</MUNICIPIO>
<PROVINCIA>MADRID</PROVINCIA>
<CP>28690</CP>
</Table1>
</NewDataSet>

Quiere mediante una aplicación C#, poder eliminar los elemento que yo elija, por ejemplo DNI y CP, para obtener el siguiente XML:

<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<Table1>
<SUJPASIVO>FERNANDEZ GOMEZ ANA ISABEL</SUJPASIVO>
<DOMICILIO>CL MAYOR 12</DOMICILIO>
<MUNICIPIO>BRUNETE</MUNICIPIO>
<PROVINCIA>MADRID</PROVINCIA>
</Table1>
<Table1>
<SUJPASIVO>FERNANDEZ GOMEZ MINERVA</SUJPASIVO>
<DOMICILIO>CL MAYOR 12</DOMICILIO>
<MUNICIPIO>BRUNETE</MUNICIPIO>
<PROVINCIA>MADRID</PROVINCIA>
</Table1>
<Table1>
<SUJPASIVO>FERNANDEZ GOMEZ MINERVA</SUJPASIVO>
<DOMICILIO>CL MAYOR 12</DOMICILIO>
<MUNICIPIO>BRUNETE</MUNICIPIO>
<PROVINCIA>MADRID</PROVINCIA>
</Table1>
</NewDataSet>

¿Como podría hacerlo? Para recorrerlo estoy usando las librerías XMLDocument.

Gracias.
  #2 (permalink)  
Antiguo 20/03/2016, 05:02
 
Fecha de Ingreso: agosto-2012
Mensajes: 5
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Eliminar elementos de un XML

Creo que lo he solucionado con este código, pero me parece demasiado retorcido, ¿alguien tiene alguna solución más práctica?:

XmlDocument documento = new XmlDocument();

documento.Load("C:\\BASURA\\ORIGINAL.XML");

XmlNodeList nodes = documento.SelectNodes("NewDataSet/Table1");

foreach (XmlNode node in nodes)
{
for (int i = 1; i < 3; i++)
{
string atributo="";
if (i == 1) { atributo = "DNI"; }
if (i==2) {atributo="SUJPASIVO";}

XmlNodeList nodes2 = node.ChildNodes;
foreach (XmlNode node2 in nodes2)
{
//MessageBox.Show(node2.Name);
if (node2.Name == atributo)
{
node.RemoveChild(node2);
}
}
}
}

documento.Save("C:\\BASURA\\FINAL.XML");

Etiquetas: elementos, net, xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:40.