Red de conocimiento informático - Computadora portátil - ¿Cómo lee y escribe asp.net datos en xml?

¿Cómo lee y escribe asp.net datos en xml?

En este artículo presentaré cómo leer archivos XML en aplicaciones ASP.NET, que es una técnica muy útil. Usando esta técnica, podemos personalizar el archivo de configuración de nuestra aplicación y también leer los datos almacenados en el archivo XML.

Descripción general

El siguiente código utilizará el objeto XmlTextReader para leer datos del archivo de disco en el objeto XmlDocument. El objeto XmlTextReader tiene una función muy similar a los objetos StreamReader y BinaryReader, excepto que está especialmente diseñado para leer archivos XML. Además, el objeto XmlTextReader tiene otras características relacionadas con XMl. Por ejemplo, el atributo WhitespaceHandling utilizado en el código le indica a la aplicación que no cree nodos para espacios adicionales en el archivo XML.

El siguiente código utiliza la propiedad DocumentElement del objeto XmlTextReader para encontrar el nodo raíz de la representación de árbol del documento XML. Luego, llamar recursivamente al método AddWithChildren agregará el nodo y sus nodos secundarios al cuadro de lista.

El siguiente código también incluye el procesamiento de atributos. Los nodos de atributos no se incluyen en el conjunto de nodos secundarios del nodo de un objeto XmlDocument. Por lo tanto, sólo puede obtener una colección de nodos de atributos utilizando la propiedad Attributes del objeto XmlNode. Después de obtener la colección de nodos de atributos, el código utiliza el objeto XmlNamedNodeMap para guardar la colección. Este objeto puede contener cualquier colección de objetos XmlNode de cualquier tipo.

Lista de códigos

private void btnLoad_Click(remitente del objeto, System.EventArgs e)

{

Lector XmlTextReader = nuevo XmlTextReader(

Server.MapPath("miempresa.xml"));

reader.WhitespaceHandling = WhitespaceHandling.None;

XmlDocument xmlDoc = new XmlDocument();

p>

//Cargar el archivo en el objeto XmlDocument

xmlDoc.Load(reader);

//Cerrar la conexión

reader.Close( );

//Agregar elementos que representan documentos al cuadro de lista

lbNodes.Items.Add("Documento XML");

//Encuentre el nodo raíz y agréguelo junto con sus nodos secundarios al cuadro de lista

XmlNode xnod = xmlDoc.DocumentElement;

AddWithChildren(xnod, 1);

}

private void AddWithChildren(XmlNode xnod, Int32 intLevel)

{

//Agrega el nodo y sus nodos secundarios al cuadro de lista

//intLevel controla la profundidad de la sangría

XmlNode xnodWorking;

String strIndent = new string('' '', 2 * intLevel);

//Si el nodo tiene un valor, lee su valor

string strValue = (string) xnod.Value;

if (strValue != null)

{

strValue = " : " strValue;

}

//Agregue los detalles del nodo al ListBox

lbNodes. Items.Add(strIndent xnod.Name strValue);

//Si es un nodo de elemento, obtiene sus atributos

if (xnod.NodeType == XmlNodeType.Element)

{

XmlNamedNodeMap mapAttributes = xnod.Attributes;

//Agregar atributos de nodo al ListBox

foreach(XmlNode xnodAttribute en mapAttributes)

{

lbNodes.Items.Add(strIndent " " xnodAttribute.Name

" : " xnodAttribute.Value

}

//Si hay nodos secundarios, llame a este programa de forma recursiva

if(xnod.HasChildNodes)

{

p>

xnodWorking = xnod.FirstChild;

mientras (xnodWorking != null)

{

AddWithChildren(xnodWorking, intLevel 1);

p>

xnodWorking = xnodWorking.NextSibling;

}

}

}

}

}