añadir nodo a archivo XML

09/11/2007 - 12:40 por alfonso_C# | Informe spam
Hola amigos tengo un archivo XML que genere con el metodo WriteXML de
un DataSet pero me gustaria colocarle un nodo que englobe a todo el
documento , seria como el principal nodo con ciertos datos. Agradezco
de antemano su ayuda y muchisimas gracias por adelantado como siempre
(^_^)

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
09/11/2007 - 14:43 | Informe spam
"alfonso_C#" wrote in message
news:
Hola amigos tengo un archivo XML que genere con el metodo WriteXML de
un DataSet pero me gustaria colocarle un nodo que englobe a todo el
documento , seria como el principal nodo con ciertos datos. Agradezco
de antemano su ayuda y muchisimas gracias por adelantado como siempre
(^_^)



No lo he probado, pero me imagino que si haces el WriteXml a través de un
XmlTextWriter te dejará inyectarle el nodo adicional:

System.IO.FileStream stream = new System.IO.FileStream
(archivo, System.IO.FileMode.Create);

System.Xml.XmlTextWriter xmlWriter new System.Xml.XmlTextWriter(stream,
System.Text.Encoding.UTF8);

xmlWriter.WriteStartElement("MiElemento");
xmlWriter.WriteAttributeString("MiAtributo", "valor");

elDataSet.WriteXml(xmlWriter);

xmlWriter.WriteEndElement();

xmlWriter.Close();
Respuesta Responder a este mensaje
#2 alfonso_C#
09/11/2007 - 17:16 | Informe spam
On 9 nov, 09:43, "Alberto Poblacion" <earthling-
wrote:
"alfonso_C#" wrote in message

news:

> Hola amigos tengo un archivo XML que genere con el metodo WriteXML de
> un DataSet pero me gustaria colocarle un nodo que englobe a todo el
> documento , seria como el principal nodo con ciertos datos. Agradezco
> de antemano su ayuda y muchisimas gracias por adelantado como siempre
> (^_^)

No lo he probado, pero me imagino que si haces el WriteXml a través de un
XmlTextWriter te dejará inyectarle el nodo adicional:

System.IO.FileStream stream = new System.IO.FileStream
(archivo, System.IO.FileMode.Create);

System.Xml.XmlTextWriter xmlWriter > new System.Xml.XmlTextWriter(stream,
System.Text.Encoding.UTF8);

xmlWriter.WriteStartElement("MiElemento");
xmlWriter.WriteAttributeString("MiAtributo", "valor");

elDataSet.WriteXml(xmlWriter);

xmlWriter.WriteEndElement();

xmlWriter.Close();



Gracias pero me referia a un documento XML existente, poder colocarle
a dicho documento un nodo que englobe o agrupe los demás. :D
Respuesta Responder a este mensaje
#3 Alberto Poblacion
09/11/2007 - 17:33 | Informe spam
"alfonso_C#" wrote in message
news:
Gracias pero me referia a un documento XML existente, poder colocarle
a dicho documento un nodo que englobe o agrupe los demás. :D



Bueno, puedes hacer aproximadamente lo mismo, es decir, usas un
XmlTextWriter para crear un documento nuevo, le añades con WriteStartElement
el nodo que quieres que abarque a los demás, y luego le inyectas con un
WriteElementString al contenido del fichero existente. Finalmente, lo
cierras con WriteEndElement.

Si no te gusta el XmlTextWriter, también puedes usar un XmlDocument, usar su
.Load para cargar el archivo existente, usar el DOM para inyectarle un nuevo
elemento en la raiz, y mover el resto por debajo de ese elemento. Luego lo
vuelves a salvar con su método .Save.

Finalmente, una alternativa más, es hacerlo "a lo bestia" con manupulaciones
de strings: Cargas el texto en una cadena con el ReadToEnd de un
StreamReader, le concatenas al principio el elemento deseado (y al final el
cierre del elemento), y lo vuelves a escribir con un StreamWriter.
Respuesta Responder a este mensaje
#4 alfonso_C#
09/11/2007 - 18:13 | Informe spam
On 9 nov, 12:33, "Alberto Poblacion" <earthling-
wrote:
"alfonso_C#" wrote in message

news:

> Gracias pero me referia a un documento XML existente, poder colocarle
> a dicho documento un nodo que englobe o agrupe los demás. :D

Bueno, puedes hacer aproximadamente lo mismo, es decir, usas un
XmlTextWriter para crear un documento nuevo, le añades con WriteStartElement
el nodo que quieres que abarque a los demás, y luego le inyectas con un
WriteElementString al contenido del fichero existente. Finalmente, lo
cierras con WriteEndElement.

Si no te gusta el XmlTextWriter, también puedes usar un XmlDocument, usar su
.Load para cargar el archivo existente, usar el DOM para inyectarle un nuevo
elemento en la raiz, y mover el resto por debajo de ese elemento. Luego lo
vuelves a salvar con su método .Save.

Finalmente, una alternativa más, es hacerlo "a lo bestia" con manupulaciones
de strings: Cargas el texto en una cadena con el ReadToEnd de un
StreamReader, le concatenas al principio el elemento deseado (y al final el
cierre del elemento), y lo vuelves a escribir con un StreamWriter.



Gracias Alberto. lo de "a lo bestia" seria muy bestia teniendo las
herramientas que nos ofrece .NET :D muchas gracias
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida