XMLNode y XMLDocument en el aula



Documentos relacionados
Leer XML con XMLReader en el aula

XPath en el aula. Nieves Carralero Colmenar I.E.S Ramón y Cajal. Albacete ncarralero@jccm.es

Hojas de Estilos XSLT en el aula. Nieves Carralero Colmenar I.E.S Ramón y Cajal. Albacete ncarralero@jccm.es

XUpdate para el acceso a bases de datos XML nativas.

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

trámite, organización, consulta, conservación y disposición final de los documentos

Practica A. Crear y Administrar Grupos

Las propiedades de la clase en java es el equivalente a las variables globales en lenguajes estructurados como el C.

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

Herramientas CONTENIDOS. MiAulario

Redes de área local: Aplicaciones y servicios WINDOWS

Guía de implementación Softland en SQL Server Versión 1.0

Capítulo VI. Estudio de Caso de Aplicación del Integrador de Información Desarrollado

Programación Avanzada Ingeniería Civil en Computación

Windows Journal en dos patadas

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

Ministerio de Educación,Cultura y Deporte. Aulas en Red. Windows. Módulo 2: Servicios Básicos. Directorio Activo

GUÍA RED SOCIAL FACEBOOK

La función de los Recursos Humanos y su aporte a la empresa actual

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

Capítulo 1 Documentos HTML5

Servicio de Apoyo a la Investigación. Tutorial EndNoteWeb

Metadatos en Plataformas ECM

Árboles AVL. Laboratorio de Programación II

Informática 4º ESO Tema 1: Sistemas Informáticos. Sistemas Operativos (Parte 2)

Manual de usuario Versión: 1.3 Edición: 05/02/2015 1

VAST: Manual de usuario. Autores: Francisco J. Almeida-Martínez Jaime Urquiza-Fuentes

Novedades en Gestión de Expedientes (9 junio 2015)

APOLO GESTION INTEGRAL.

USO DIDÁCTICO DE LA PIZARRA DIGITAL INTERACTIVA

Repositorios de vídeos en Internet como recurso para el aula de secundaria.

1 El trabajo expuesto está subvencionado por el proyecto de la URJC PGRAL-2001/14

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso Cuatrimestre de otoño. 17 de Enero de 2011

GUÍA BÁSICA USUARIO MOODLE 2.6

Procesamiento de documentos XML

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)

Creado dentro de la línea de sistemas operativos producida por Microsoft Corporation.

CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO

COMO HACER LA FACTURACIÓN DE LAS CUOTAS

Microsoft XML Core Services MSXML

INFORMÁTICA IE. Términos a conocer y conceptos básicos. World Wide Web (WWW):

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

PHP y MySQL. Inicio: - Herencia - Palabra clave Final - Polimorfismo - Type Hinting - Abstracción de clases

MANUAL PARA INCLUIR EL MOTOR DE RESERVAS EN LA WEB DEL ESTABLECIMIENTO

Ampliación de Estructuras de Datos

Programación en Bachillerato. Crear video-juegos como recurso para comprender bucles y condicionales.

KRITER ERP v2012. Cambios Tipos de Impuestos IVA. Documento Técnico. 13 de julio de 2012.

PRÁCTICA 1: Optimización con Excel 2010

Manual del Usuario CLIENTES y PROVEEDORES

Office Online Office Online

Cómo creo las bandejas del Registro de Entrada /Salida y de Gestión de Expedientes?

TABLAS Y GRÁFICOS DINÁMICOS

Mini-guía: Gestión Backup

13. FORMATO NORMALIZADO DE LA CUENTA GENERAL DE LAS ENTIDADES LOCALES EN SOPORTE INFORMÁTICO.

Herramientas Software Unycop Win. Cuándo hay que hacer uso de las Herramientas Software?

REGISTRAR LOS SITIOS WEB MÁS INTERESANTES

Prof. Dr. Paul Bustamante

Palabras clave: Taragüí. Redes sociales. Facebook. Twitter. Página web. Atención al cliente.

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

Título: Configuración de BDE en MS Windows Vista y Windows 7 José Sanchis jsanchis@spl-ssi.com SPL Sistemas de Información Afecta a: Istas21 1.

Guía Práctica para el Uso del Servicio de Software Zoho CRM

Solución al Examen de Prácticas de Programación (Ingeniería Informática)

Bases de Datos XPath - XQuery 1. XML: XPath - XQuery. Jorge Pérez Rojas Universidad de Talca, II Semestre 2006

Cómo sistematizar una experiencia?

POLÍTICA DE PRIVACIDAD PARA APLICACIONES MÓVILES GRUPOCOPESA. 1. información que se obtiene la aplicación y su utilización

Descripción del programa GeneSis


UNIVERSIDAD DE MEDELLÍN NUEVO PORTAL WEB MANUAL DE USUARIO GESTOR DE CONTENIDOS

Este programa mueve cada motor de forma independiente, y cuando termina una línea pasa a la siguiente.

Archivo de correo con Microsoft Outlook contra Exchange Server

Contenidos. Archivos en C++ Archivos en C++ Introducción

Analítica para tu Tienda Online

Nociones básicas de Windows: Organizando: El Explorador de archivos de Windows

Manual CMS Mobincube

TUTORIAL DE INSTALACIÓN PARA VIRTUALBOX

Scratch. Programación fácil para educación primaria y secundaria.

PrefDataImporter Manual de Usuario Noviembre de 2013

INSTALACIÓN DEL MÓDULO... 3 CONFIGURACIÓN DEL MÓDULO... 4 ACTIVACIÓN DEL MÓDULO EN LA ADMINISTRACIÓN:... 4 CONFIGURACIÓN DEL MÓDULO:...

USO DE LAS TECNOLOGÍA DE INFORMACIÓN EN LA INDIA

Manual de software. Dynamic Cloud. 10/2014 MS-Dynamic_Cloud v1.2

2_trabajar con calc I

Distribuidor de documentos 1. Ventajas. Distribuidor de documentos

Capítulo 6. Desarrollo del Software

Configuración Y Diseño Del Correo Electrónico Y Web Personal De IESA

Manual básico de Outlook Express

Software Criptográfico FNMT-RCM

Servidores Donantonio

DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006

Capitulo III. Diseño del Sistema.

WebServices Parte 2 XML

Transcripción:

XMLNode y XMLDocument en el aula Nieves Carralero Colmenar. IES Pedro Mercedes. Junta de Comunidades de Castilla-La Mancha. España. ncarralero@edu.jccm.es Resumen El presente artículo se centra en ofrecer una aletrnativa para el trabajo con XML y Microsoft.NET usando el objeto XMLNode para poder leer y escribir documentos. Según la Orden EDU/2887/2010, de 2 de noviembre, por la que se establece el currículo del ciclo formativo de Grado Superior correspondiente al título de Técnico Superior en Desarrollo de Aplicaciones Web, se define un módulo con título: Módulo Profesional: Lenguajes de marcas y sistemas de gestión de información. En él se pretende hacer una aproximación al trabajo con XML como pieza clave en el desarrollo de aplicaciones Web. 1. Introducción Desde su creación, XML ha despertado encontradas pasiones, y como para cualquier tema en Internet, hay gente que desde el principio se ha dejado iluminar por sus expectativas, mientras que otras muchas lo han denostado o simplemente ignorado. Desde 1999 XML se ha convertido en una realidad empresarial palpable. Los programas que lo soportan han crecido del mismo modo exponencial, y a día de hoy no hay empresa de software que se precie que no anuncie la compatibilidad de sus productos más vendidos con este nuevo estándar: Microsoft (.Net), Oracle (Oracle 10i, Web Application Server) o Lotus (Notes) son tres claros ejemplos de ello. Aún más increíble es pensar que hay empresas que se han creado en torno a él, u otras que han movido su actividad hacia su ámbito (de SGML a XML, por ejemplo, como ArborText). www.sociedadelainformacion.com Nº 27 abril 2011 1/10

2. XMLNode Más concretamente con.net, según la documentación oficial de MSDN, XmlNode: está clase implementa el W3C Core Document Object Model (DOM) Level 1 y el Core DOM Level 2. DOM es la representación en forma de árbol en memoria (caché) de un documento XML. XmlNode es la clase base de la implementación.net del DOM. Admite selecciones XPath y proporciona capacidades de edición. [MSDN] Como se verá XmlNode es la manera a través de la cual el Framework nos permite trabajar con documentos XML por medio de DOM, cuya mayor finalidad es la de proveer un sistema adecuado para la edición de dichos documentos. XmlNode es una clase abstracta, y esto significa que en la mayoría de los casos no se trabaja directamente con ella sino que lo vamos a hacer utilizando aquellas clases que la heredan, de las cuales las más importantes son: XmlAttribute: Representa un atributo de un elemento XML. XmlDocument: Representa un documento XML. XmlDocumentFragment: Representa una porción de un documento XML. Además de estas clases hay otra clase que hereda de XmlNode la cual también es abstracta y es XmlLinkedNode. Las clases que heredan de XmlLinkedNode nos permiten llegar a cada elemento del documento XML, y las más importantes son: XmlDeclaration: Representa al nodo de declaración XML: <?xml version='1.0'...?>. XmlElement: Representa un elemento XML. Existen muchas más clases dentro de la estructura jerárquica de clases que heredan de XmlNode, pero la mencionadas son suficientes para este trabajo. www.sociedadelainformacion.com Nº 27 abril 2011 2/10

3. Acceso a XML con XMLNode. En la siguiente práctica se muestra un ejemplo de lectura de documento XML usando el objeto XMLNode y XMLDocumdent. La salida será los elementos y sus etiquetas mostrados en formato secuencial. A continuación se muestra una imagen de un documento XML que será el que se usará de ejemplo: Práctica 1: Práctica 1: Realizar una lectura del documento XML anterior usando XmlTextNode y XMLDocument. En la práctica se deben seguir los siguientes puntos: Usan una solución recursiva. Comienza desde el nodo raíz (propiedad DocumentElement de XmlDocument) Visita cada hijo de cada nodo y visualiza la información deseada. www.sociedadelainformacion.com Nº 27 abril 2011 3/10 Así hasta que no hay más nodos.

Destacar en la solución el uso de WhitespaceHandling (que es una propiedad de XmlTextNode) y XmlAttributeCollection que implementa una colección de atributos. La salida de la práctica 1 es todo el documento XML incluidas las declaraciones y los espacios en blanco y los atributos. Solución: Las funciones de la clase XmlNode son: www.sociedadelainformacion.com Nº 27 abril 2011 4/10

XmlDocument No existe un camino directo que cree un XmlNode para representar una entidad de un documento XML. Es necesario recuperar los XmlNode desde www.sociedadelainformacion.com Nº 27 abril 2011 5/10

objetos XmlDocument. Un objeto XmlDocument representa un documento XML completo. Los métodos y propiedades más importantes de XmlDocument son mostrados en la siguiente tabla: www.sociedadelainformacion.com Nº 27 abril 2011 6/10

El código comentado es el siguiente: public void Run(String args) StringBuilder sbnode = new StringBuilder(); // Crea un nuevo XMLTextReader con el fichero XML XmlTextReader xtr = new XmlTextReader(args); // No detecta los espacios en blanco. Otra opción es ALL( por defecto) xtr.whitespacehandling = WhitespaceHandling.None; XmlDocument xd = new XmlDocument(); // Carga el fichero XML a una XmlDocument xd.load(xtr); // Otras alternativas es cargar desde stream o desde namefile directamente // Obtiene el nodo ráiz de un documento XmlNode xnodroot = xd.documentelement; // Ahora, va recorriendo el DOM y visualiza XmlNode xnodworking; //Un Node auxiliar if (xnodroot.haschildnodes) xnodworking = xnodroot.firstchild; while (xnodworking!= null) www.sociedadelainformacion.com Nº 27 abril 2011 7/10

Visualiza_Hijos(xnodWorking, 0); siguiente Hermano xnodworking = xnodworking.nextsibling; //Sacar el // Clean up xtr.close(); private void Visualiza_Hijos(XmlNode xnod, Int32 intdepth) // Va visualizando cada nodo junto con sus hijos // intdepth controla la profundidad StringBuilder sbnode = new StringBuilder(); // Solo procesa Element y Text. Observar como compara con XmlNodeType también como XmlTextReader if((xnod.nodetype == XmlNodeType.Element) (xnod.nodetype == XmlNodeType.Text) ) sbnode.length = 0; for(int inti=1; inti <= intdepth ; inti++) sbnode.append(" "); sbnode.append(xnod.name + " "); sbnode.append(xnod.nodetype.tostring()); sbnode.append(": " + xnod.value); Console.WriteLine(sbNode.ToString()); // Ahora añade los atributos si los hay. //utiliza una objeto XmlAttributeCollection www.sociedadelainformacion.com Nº 27 abril 2011 8/10

XmlAttributeCollection atts = xnod.attributes; if(atts!= null) for(int inti = 0;intI < atts.count; inti++) sbnode.length = 0; for (int intj = 1; intj <= intdepth + 1;intJ++) sbnode.append(" "); sbnode.append(atts[inti].name + " "); //Accedo a los atributos como elementos de un colección sbnode.append(atts[inti].nodetype.tostring()); sbnode.append(": " + atts[inti].value); Console.WriteLine(sbNode); // Recursivamente explorar los nodos hijo XmlNode xnodworking; if (xnod.haschildnodes) xnodworking = xnod.firstchild; while (xnodworking!= null) Visualiza_Hijos(xnodworking, intdepth + 1); hermano xnodworking = xnodworking.nextsibling;//proximo www.sociedadelainformacion.com Nº 27 abril 2011 9/10

4. Aspectos a tener en cuenta en el aula. Esta práctica debe entenderse como una solución factible para trabajar con XML y DOM; de manera completa. Esta solución es sin duda, junto con la escritura, la más usada en este tipo de entorno, por su potencia y flexibilidad. 5. Bibliografía MSDN. http://msdn.microsoft.com/es-es/library/bb972196.aspx XML desde.net: http://zarza.usal.es/~fgarcia/docencia/poo/04-05/trabajos/xml.net.pdf.net Framework: http://msdn.microsoft.com/enus/magazine/cc302158.aspx XML tutorial: http://www.programacion.net/html/xml/ www.sociedadelainformacion.com Director: José Ángel Ruiz Felipe Jefe de publicaciones: Antero Soria Luján D.L.: AB 293-2001 ISSN: 1578-326x www.sociedadelainformacion.com Nº 27 abril 2011 10/10