XML: Procesamiento del Lado del Cliente
Aunque XML es un producto nuevo, funciona muy bien con HTML y sus productos relacionados, como JavaScript y CSS. En concreto, XML puede existir en lo que se denominan "islas de datos XML" dentro de HTML. Introduciremos XML comenzando con ejemplos que enfatizan las características familiares de HTML y sus hermanos, mientras que progresivamente se desvelan más rasgos que caracterizan a XML.
Uso de una forma restringida de XML
El primer conjunto de ejemplos utiliza una estructura XML muy común y ampliamente utilizada, y que se mapea fácilmente en HTML. Se trata de un conjunto de datos "tabular" o rectangular. Las restricciones son las siguientes:
- El XML sólo contiene nodos de elementos y ningún atributo.
- La estructura de árbol sólo tiene un nivel de profundidad, por ejemplo
Ejemplo 1: Mostrar todos los registros. Este primer ejemplo simplemente muestra todos los registros de un conjunto de datos tabular sencillo. No contiene ninguna sentencia XML, sino que lee un conjunto de datos XML en una tabla HTML.
Ejemplo 2: Recorrer un registro cada vez. Este ejemplo se mueve a través de un registro a la vez, e introduce un poco de manipulación JavaScript de funciones XML.
Ejemplo 3: Búsqueda de registros que coincidan con una cadena. Este ejemplo muestra cómo puede especificar un archivo XML desde un FORMULARIO HTML, y buscar registros basándose en su contenido.
Ejemplo 4: Editar registros de uno en uno. El último ejemplo de este conjunto es un programa JavaScript bastante extenso que permite añadir, eliminar y editar registros de uno en uno. Tenga en cuenta que la edición se realiza sólo en la versión en caché del conjunto de registros XML en el cliente y no afecta a la copia en el servidor. Eso requiere pasos adicionales.
Uso del formato XML completo sin restricciones
Los siguientes ejemplos son totalmente generales y pueden procesar cualquier archivo de datos XML de cualquier tipo o complejidad. El ingrediente clave de la mayoría de ellos es una función recursiva que "recorre" el árbol para poder visitar cualquier nodo de elemento o atributo. El programa recursivo básico, escrito en JavaScript, sólo tiene unas 10 líneas, pero puede resultar conceptualmente difícil de entender simplemente porque es recursivo.
Es importante tener en cuenta que un documento XML tiene una estructura de árbol por encima y más allá de la estructura de los propios elementos de datos. La estructura general de un documento XML es algo así
El archivo XML propiamente dicho no es más que una rama de un árbol que suele contener otras dos o tres ramas. Sea "XMLdoc" el nombre de un documento XML. Entonces la raíz del archivo XML real viene dada por:
theRoot = XMLdoc.documentElement;
Ejemplo 5: Mostrar todos los nodos de un archivo XML Este ejemplo simplemente visita cada nodo elemento en un árbol e imprime su valor.
Ejemplo 6. Visualización de todos los elementos de un nombre determinado Mostrar todos los elementos de un determinado nombre Esto escanea a través del árbol, usando una simple función no recursiva, y muestra el valor de todos los elementos de un cierto nombre.
Ejemplo 7: Buscar cualquier elemento que coincida con una cadena Esta función recorre el árbol y localiza el elemento (en realidad el NodoPadre) que contiene parte de la cadena de búsqueda.
Ejemplo 8: Buscar elementos específicos que coincidan con una cadena Utiliza una técnica no recursiva para localizar aquellos elementos de un determinado nombre que coinciden con una cadena.
Ejemplo 9: Buscar cualquier elemento o atributo que coincida Este ejemplo utiliza un escaneo recursivo completo para buscar todos los elementos O atributos que coincidan con una cadena de entrada.
Ejemplo 10: Editar un archivo XML Este ejemplo explora cualquier archivo XML para añadir, eliminar o modificar nodos de elementos en un árbol que coincidan con una cadena determinada. Todos los nodos que coincidan con una cadena son susceptibles de eliminación o modificación, pero la adición de un nodo sólo tiene lugar inmediatamente antes del nodo que coincide.
Original Article: https://staff.washington.edu/larryg/Classes/Xml/Rick/client.html