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

Generando código XML

Estas en el tema de Generando código XML en el foro de .NET en Foros del Web. HOla de nuevo!!! Tengo unos problemas con las clases de XML en C#. Resulta que tengo un código XML como el siguiente: Código PHP: <?xml version ...
  #1 (permalink)  
Antiguo 28/12/2007, 20:50
Avatar de kalixe985  
Fecha de Ingreso: junio-2006
Ubicación: Colombiano viviendo en Es
Mensajes: 73
Antigüedad: 17 años, 10 meses
Puntos: 0
De acuerdo Generando código XML

HOla de nuevo!!!
Tengo unos problemas con las clases de XML en C#.
Resulta que tengo un código XML como el siguiente:
Código PHP:
<?xml version="1.0" encoding="utf-8"?>
<Application xmlns="http://www.google.com">
  <Region x="0" y="0" width="1920" height="1080" />
  <Script src="archivo1" />
  <Markup src="archivo2" />
  <Resource src="archivo1" />
  <Resource src="archivo2" />
</Application>
Por mi aplicación, necesito insertar y eliminar nodos del tipo <Resource>, es decir, de los 2 últimos. Para insertar (al final, por ejemplo), no tengo ningún problema ya que puedo clonar alguno de los <Resource>, modificarlo e insertarlo. Mi problema surge a la hora de eliminar un nodo <Resource> según su atributo src. Si utilizo la expresión
Código:
XmlNode deleteContact = xmlDocument.SelectSingleNode("//Resource[@src='archivo1']");
deleteContact.ParentNode.RemoveChild(deleteContact);
Resulta que me sale una NullReferenceException. He descubierto que esto sucede porque el nodo raíz <Application> tiene un namespace xmlns="http://www.google.com". Si quito el namespace y pongo un atributo cualquiera o simplemente dejo el nodo <Application> sin atributos, el código anterior sí que borra correctamente el nodo (en este caso borraría <Resource src="archivo1" /> ). Para que funcione debo modificar el código XML de esta forma (o dejar <Application> sin atributos):
Código PHP:
<?xml version="1.0" encoding="utf-8"?>
<Application atributo="http://www.google.com">
  <Region x="0" y="0" width="1920" height="1080" />
  <Script src="archivo1" />
  <Markup src="archivo2" />
  <Resource src="archivo1" />
  <Resource src="archivo2" />
</Application>

¿Cómo puedo borrar nodos si el nodo raíz tiene un namespace? Por cierto y dicho sea de paso, el código XML del principio lo cargo desde una plantilla, con lo cual no he creado el namespace yo mediante código.


Otra cosa que me gustaría saber es si hay alguna forma de cambiarle el nombre a un nodo (pasar de un nodo <nombre1 ... ... /> a tener un nodo <nombre2 ... ... />), sin tener que crear un nodo nuevo, simplemente modificando un nodo ya existente.
Lo mismo me gustaría hacerlo con los nombres de atributos. En resumen, si tengo:
Código PHP:
<Resource src="archivo1" /> 
me gustaría obtener, modificando este nodo, el nodo
Código PHP:
<Pepito atributo="valorCualquiera" /> 
.



A ver si me podéis echar una manito.
Gracias de antemano y salu2!!!!!
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 16:35.