Índice
1. Introducción2. Palabras Clave
3. Problema
4. Solución
5. Discusión de la Solución
5.1 El método GetElementsByTagName
6. Conclusiones
7. Literatura & Enlaces
1. Introducción
Esta nueva receta C# muestra el proceso a seguir para encontrar un elemento XML por medio de su nombre. Nuevamente se hace uso de la clase System.Xml.XmlDocument; en particular se usa el método GetElementsByTagName. Para la sección práctica se utiliza el catálogo de productos definido en las recetas previas de esta serie de manipulación de documentos XML con C#, para demostrar su utilidad.
2. Palabras Clave
- .NET
- Documento XML
- Elemento
- Nodo
- XML
3. Problema
Se requiere de un mecanismo de recuperación de elementos desde un documento XML donde baste especificar el nombre natural del elemento.
4. Solución
La clase XmlDocument (namespace System.Xml) con su método GetElementsByTagName permite la búsqueda de todas las ocurrencias en un documento XML.
5. Discusión de la Solution
5.1 El método GetElementsByTagName
El método GetElementsByTagName ("XmlDocument.GetElementsByTagName Method", 2016) -System.Xml.XmlDocument- permite especificar un nombre de nodo -o etiqueta- como parámetro de búsqueda de ocurrencias sobre un documento XML. Finalizada su ejecución retorna un objeto XmlNodeList ("XmlNodeList Class", 2016). Esta lista de nodos contiene los resultados de la búsqueda en orden.
Esta es la declaración sintáctica de GetElementsByTagName:
public virtual XmlNodeList GetElementsByTagName(
string name
)
El único parámetro que recibe corresponde con el nombre (o etiqueta) del elemento a buscar.
6. Práctica: Calcular el Valor Total de Productos
En el siguiente ejemplo se demuestra cómo calcular el valor total de una serie de productos especificados en un documento XML: CatalogoProductos.xml.
En la línea 11 creamos un nuevo objeto XmlDocument con el que se cargará el archivo XML CatalogoProductos.xml (línea 12). Sobre la línea 15 invocamos el método GetElementsByTagName con el parámetro string "Precio". Una vez finalizada la búsqueda en todo el documento XML se retornará un objeto XmlNodeList con todas las ocurrencias encontradas.
En las líneas 22-27 se itera el objeto XmlNodeList -precios-, para calcular el precio total de los productos almacenados en el archivo XML.
Compilación:
csc /t:exe CalculoPrecioProductos.cs
Ejecución assembly:
.\CalculoPrecioProductos.exe
Demostración ejecución assembly local:
Figura 1. Ejecución assembly CalculoPrecioProductos.exe. |
7. Conclusiones
Se ha comprendido cómo a través del método GetElementsByTagName es posible obtener una lista de resultados con todas las ocurrencias de un elemento -etiqueta- en un documento XML.
En la próxima receta se enseñará cómo obtener los nodos de un namespace específico de un documento XML.
8. Literatura & Enlaces
Jones, A., Freeman (2010). Visual C# 2010 Recipes: A Problem-Solution Approach. United States: Apress.XmlDocument.GetElementsByTagName Method (String) (System.Xml) (2016, marzo 6). Recuperado desde: https://msdn.microsoft.com/en-us/library/dc0c9ekk%28v=vs.110%29.aspx.
XmlNodeList Class (System.Xml) (2016, marzo 6). Recuperado desde: https://msdn.microsoft.com/en-us/library/system.xml.xmlnodelist%28v=vs.110%29.aspx.
V
Excelente receta! Simple y clara.
ResponderEliminar