Análisis de XML DOM
- Página anterior Árbol de nodos DOM
- Página siguiente Carga de DOM
La mayoría de los navegadores tienen integrado un analizador XML para leer y operar XML.
El analizador convierte XML en un objeto accesible para JavaScript.
Ejemplo
Los ejemplos proporcionados por CodeW3C.com son independientes de los navegadores y plataformas. Estos ejemplos pueden ejecutarse en todos los navegadores modernos.
Analizar XML
Todos los navegadores modernos tienen integrado un analizador XML para leer y operar XML.
El analizador lee XML en memoria y lo convierte en un objeto DOM de XML accesible para JavaScript.
El analizador XML de Microsoft difiere de los analizadores de otros navegadores. El analizador de Microsoft admite la carga de archivos XML y cadenas de caracteres XML (texto), mientras que otros navegadores utilizan analizadores separados. Sin embargo, todos los analizadores contienen funciones para recorrer el árbol XML, acceder, insertar y eliminar nodos.
En este tutorial, le explicaremos cómo crear scripts que se puedan ejecutar en IE y otros navegadores.
Cargar XML a través del analizador XML de Microsoft
El analizador XML de Microsoft está integrado en Internet Explorer 5 y versiones posteriores.
El siguiente fragmento de JavaScript carga el documento XML (books.xml) Carga el analizador:
xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.load("books.xml");
Explicación del código:
- La primera línea crea un objeto de documento XML de Microsoft vacío
- La segunda línea cierra la carga asíncrona, asegurando que el analizador no continúe ejecutando el script antes de que el documento se cargue completamente
- La tercera línea informa al analizador de cargar el documento llamado "books.xml"
El siguiente fragmento de JavaScript carga la cadena llamada txt en el analizador:
xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(txt);
Nota:loadXML() El método se utiliza para cargar cadenas de caracteres (texto), mientras que load() Se utiliza para cargar archivos.
El analizador XML en Firefox y otros navegadores
El siguiente fragmento de JavaScript carga el documento XML (books.xml) Carga el analizador:
xmlDoc=document.implementation.createDocument("","",null); xmlDoc.async="false"; xmlDoc.load("books.xml");
Explicación del código:
- La primera línea crea un objeto de documento XML vacío
- La segunda línea cierra la carga asíncrona, asegurando que el analizador no continúe ejecutando el script antes de que el documento se cargue completamente
- La tercera línea informa al analizador de cargar el documento llamado "books.xml"
El siguiente fragmento de JavaScript carga la cadena llamada txt en el analizador:
parser=new DOMParser(); xmlDoc=parser.parseFromString(txt,"text/xml");
Explicación del código:
- La primera línea crea un objeto de documento XML vacío
- La segunda línea informa al analizador de cargar la cadena llamada txt
Nota:Internet Explorer utiliza loadXML() método para analizar cadenas XML, mientras que otros navegadores utilizan DOMParser objeto.
Análisis de archivo XML - Un ejemplo multi-navegador
El siguiente ejemplo carga el documento XML (books.xml) Carga el analizador XML:
<html> <body> <script type="text/javascript"> try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); } catch(e) { try //Firefox, Mozilla, Opera, etc. { xmlDoc=document.implementation.createDocument("","",null); } catch(e) {alert(e.message)} } try { xmlDoc.async=false; xmlDoc.load("books.xml"); document.write("xmlDoc is loaded, ready for use"); } catch(e) {alert(e.message)} </script> </body> </html>
Error: Acceso entre dominios
Por razones de seguridad, los navegadores modernos no permiten el acceso entre dominios.
Esto significa que la página web y el archivo XML que intenta cargar deben estar en el mismo servidor.
El archivo XML abierto por el ejemplo en CodeW3C.com está en el dominio de CodeW3C.com.
Si planeas usar el ejemplo anterior en tu propia página web, debes poner el archivo XML en tu propio servidor. De lo contrario, xmlDoc.load() generará el error "Acceso denegado".
Análisis de cadena XML - Un ejemplo multi-navegador
El siguiente código carga y analiza una cadena XML:
<html> <body> <script type="text/javascript"> text="<bookstore>" text=text+"<book>"; text=text+"<title>Harry Potter</title>"; text=text+"<author>J K. Rowling</author>"; text=text+"<year>2005</year>"; text=text+"</book>"; text=text+"</bookstore>"; try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(text); } catch(e) { try //Firefox, Mozilla, Opera, etc. { parser=new DOMParser(); xmlDoc=parser.parseFromString(text,"text/xml"); } catch(e) {alert(e.message)} } document.write("xmlDoc is loaded, ready for use"); </script> </body> </html>
Nota:Internet Explorer utiliza el método loadXML() para analizar cadenas XML, mientras que otros navegadores utilizan Objeto DOMParser.
- Página anterior Árbol de nodos DOM
- Página siguiente Carga de DOM