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

Aparece el atributo: xmlns="" , al agregar nuevo elemento

Estas en el tema de Aparece el atributo: xmlns="" , al agregar nuevo elemento en el foro de Programación General en Foros del Web. Saludos a la comunidad. Lenguaje de programación : Visual Basic 2005 (system.xml) Resulta que tengo un documento XML en un archivo llamado: Archivo.xml, cargo ese ...
  #1 (permalink)  
Antiguo 24/10/2009, 09:29
 
Fecha de Ingreso: septiembre-2006
Mensajes: 8
Antigüedad: 17 años, 7 meses
Puntos: 0
Aparece el atributo: xmlns="" , al agregar nuevo elemento

Saludos a la comunidad.

Lenguaje de programación : Visual Basic 2005 (system.xml)

Resulta que tengo un documento XML en un archivo llamado: Archivo.xml, cargo ese documento en un objeto XmlDocument, y deseo agregarle un nuevo elemento al final de sus nodos hijos.

Documento.Load("C:\Archivo.xml")

Para hacer lo anterior, creo un nuevo nodo de tipo XmlElement con determinado nombre y su respectivo valor. El código es el siguiente:

NuevoElemento = Documento.CreateElement("OtroHijo")
NuevoElemento .InnerText = "Este es mi hijo"
Documento.DocumentElement.AppendChild(NuevoElement o )

Finalmente guardo el resultado en un nuevo archivo. Entonces al abrir ese nuevo archivo es donde me doy cuenta que el nuevo nodo, efectivamente sí se agregó, pero fue añadido con el xmlns="" como si quisiera saber a qué espacio de nombre pertenece.

Resultado:

<?xml version="1.0" encoding="utf-8" ?>
<NodoPapa xmlns="miespaciodenombre.com">
<Primogenito>Hola soy el primogénito</Primogenito>
<OtroHijo xmlns=""> <-Este es el atributo que me añade
....
....


Mi pregunta: ¿Cómo le hago para que no aparezca este atributo?, ¿qué parámetro tengo que cambiar??

Ya le busqué por todos lados, pero no he encontrado solución.

Muchas gracias de antemano.
  #2 (permalink)  
Antiguo 26/10/2009, 10:20
 
Fecha de Ingreso: septiembre-2006
Mensajes: 8
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: Aparece el atributo: xmlns="" , al agregar nuevo elemento

Ya tengo la respuesta. El colega Leandro Tuttini fue tan amable de pasarme el dato.

El problema está en el Namespace asignado a ese nuevo elemento. Si observan el código, cuando creo el elemento no le especifico ningún espacio de nombre. Por eso, de alguna forma al colocarle la etiqueta xmlns="" te señala que necesita un espacio de nombre al cual pertenecer.

Entonces la solución es asignarle alguno de los espacios de nombre existentes en el documento xml en el que añadirás ese nuevo elemento.

Observen que en el documento xml de ejemplo en mi anterior post, uso el espacio de nombre: xmlns="miespaciodenombre.com", entonces al crear el nuevo elemento puedo utilizar dicho espacio y asignarselo a este nuevo elemento.

Finalmente el código quedaría como sigue:

NuevoElemento = Documento.CreateElement("OtroHijo","miespaciodenombre.com")
NuevoElemento .InnerText = "Este es mi hijo"
Documento.DocumentElement.AppendChild(NuevoElement o )



y con este pequeño parámetro, el nuevo elemento ya no aparecerá con el atributo xmlns vacío.

Espero que a alguien le sirva este dato. Porque a mi sí.. jeje.

Saludos desde Mérida Yucatán, México.

Hansi


Notas:
Blog de Tunitti: http : / / ltuttini.blogspot. com/ (Los espacios están puestos a propósito , pues por ser usuario nuevo aún no puedo utilizar links)

Fuente original:
http : / / blogs.microsoft.co.il/blogs/baruchf/archive/2009/05/19/xml-empty-namespace-attributes.aspx
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 21:38.