XmlDocument peticion = new XmlDocument();
Lo siguiente es cargar en él la estructura o el xml entero (en este caso muy simple para no liarnos más)
// Introduciendo la declaración y la estructura manualmente
peticion.LoadXml("<?xml version='1.0' encoding='UTF-8'?>" +
"<peticion>" +
"<cuerpo>"+
"<id></id>"+
"<secreto></secreto>"+
"</cuerpo>"+
"</peticion>");
Sencillo, no? Pero muy poco útil obviamente porque perdemos toda la potencia de poder crear los XML de forma dinámica.
El siguiente método es mucho más complejo pero a la par que nos permite el control total de nuestra construcción:
XmlDocument peticion = new XmlDocument();
XmlNode xmlnode;
XmlDeclaration xmldeclaracion;
// Creo la línea de declaración de dos formas diferentes.
// Esta por métodos de Xdocument
xmlnode = peticion.CreateNode(XmlNodeType.XmlDeclaration, string.Empty, string.Empty);
peticion.AppendChild(xmlnode);
// Le indico el encoding
xmldeclaracion = (XmlDeclaration) peticion.FirstChild;
xmldeclaracion.Encoding = "UTF-8";
// Añado el raiz peticion
xmlnode = peticion.CreateNode(XmlNodeType.Element, "peticion", "");
peticion.AppendChild(xmlnode);
// Le añado el nodo cuerpo
XmlNode nodoPeticion = peticion.DocumentElement;
XmlNode nodoCuerpo = peticion.CreateNode(XmlNodeType.Element, "cuerpo", null);
nodoPeticion.AppendChild(nodoCuerpo);
// Le añado los elementos id y secreto y le doy valores.
XmlElement elementoId = peticion.CreateElement("id");
XmlElement elementoSecreto = peticion.CreateElement("secreto");
nodoCuerpo.AppendChild(elementoId);
nodoCuerpo.AppendChild(elementoSecreto);
Y con esto obtenemos el mismo XML que con el ejemplo anterior.
Más adelante, os contaré como manipular los valores en estos elementos.
3 comentarios:
Excelente aporte!!
Me alegro que te sea de utilidad.
Buenos días,
Tengo un ejemplo que crea un XML mediante XMLDocument y lo guarda en una carpeta.
Hasta aquí bien, pero como abriría el XML desde c# para que el usuario lo vea directamente?
Gracias
Publicar un comentario