Cómo convertir archivos dom a archivos bok
Actualmente, el W3C lanzó la especificación DOM Nivel 2 el 13 de noviembre de 2000. El modelo de objetos de documento (DOM) es una especificación para una interfaz de programación para documentos HTML y XML que es independiente de la plataforma y el lenguaje, por lo que se puede implementar en una variedad de lenguajes en una variedad de plataformas. Este modelo define la estructura lógica de los documentos THML y XML (es decir, documentos) en la memoria y proporciona métodos para acceder y almacenar documentos THML y XML. Con la especificación DOM, puede realizar la conversión mutua entre documentos DOM y XML, atravesar y operar el contenido de los documentos DOM correspondientes. Se puede decir que para poder manipular libremente documentos XML, necesitamos utilizar la especificación DOM.
2. Estructura lógica interna del DOM
La estructura lógica de un documento DOM se puede expresar en forma de árbol de nodos. Mediante el proceso de análisis del documento XML, los elementos del documento XML se convertirán en objetos de nodo de documento DOM. Los nodos de documentos DOM tienen tipos de nodos como Documento, Elemento, Comentario, Tipo, etc. Cada documento DOM debe tener un nodo Documento, que es el nodo raíz del árbol de nodos. Puede tener nodos secundarios o nodos hoja, como nodos de texto, nodos de comentarios, etc. Cada elemento de cualquier documento XML bien formado tiene un tipo de nodo correspondiente en el documento DOM. Después de convertir el documento XML en un documento DOM utilizando la interfaz DOM, podemos procesar libremente el documento XML.
3. Interfaz DOM en Java
La especificación DOM proporciona especificaciones API. La versión beta jdk1.4 actual de la API de Java lanzada por Sun sigue la semántica de interfaz recomendada por el nivel DOM. 2 núcleos Descripción, que proporciona la implementación del lenguaje Java correspondiente.
En org.xml.dom, jdk1.4 proporciona interfaces como Documento, Tipo de documento, Nodo, Lista de nodos, Elemento y Texto, que son necesarias para acceder a los documentos DOM. Podemos utilizar estas interfaces para crear, recorrer y modificar documentos DOM.
En javax.xml.parsers, la combinación DoumentBuilder y DocumentBuilderFactory proporcionada por jkd1.4 puede analizar archivos XML y convertirlos en documentos DOM.
En javax.xml.transform.dom y javax.xml.transform.stream, la clase DOMSource y la clase StreamSource proporcionadas por jdk1.4 se pueden usar para escribir el documento DOM actualizado en el archivo XML generado.
4. Ejemplo
4.1 Convertir un archivo XML en un documento DOM
Este proceso consiste en obtener un analizador de archivos XML para analizar el archivo XML en un documento DOM.
En Jdk 1.4, la interfaz Documento es el objetivo de este paso, que describe el árbol del documento correspondiente al archivo XML completo y proporciona acceso a los datos del documento. La interfaz Documento está disponible en la clase DocumentBuilder, que contiene una API para obtener una instancia de documento DOM a partir de un documento XML. En jdk1.4, el código para convertir archivos XML en documentos DOM se implementa de la siguiente manera:
//Obtener el analizador para archivos XML
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// Obtenga el analizador del archivo XML.
p>
// Clase de interfaz para analizar un archivo XML para generar un documento DOM para acceder al DOM.
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse( new File (FileName) );
4.2 Atravesando documentos DOM
Después de obtener una instancia del documento de clase de interfaz, puede acceder al árbol de documentos del DOM. Para recorrer un documento DOM, primero obtenga el elemento raíz. Luego obtenga la lista de nodos secundarios del elemento raíz. Aquí, el propósito del recorrido se logra mediante métodos recursivos.
//Obtener el elemento raíz
Elemento elemento = document.getDocumentElement();
//Obtener la lista de nodos secundarios del elemento raíz p> p>
nodelist = element.getChildNodes( );
Implementar el recorrido del documento DOM mediante un método recursivo
GetElement(nodelist);
GetElement método La implementación es la siguiente:
public void GetElement(NodeList nodelist){
Nodo cnode;
int i, len;
String str;
if(nodelist.getLength() == 0)
// Este nodo no tiene nodos secundarios
return;
}
for( i=0;i 1)
System.out.println(" "+str+" "+len);
}
}
}
Nota: El código anterior solo muestra objetos de tipo Nodo y Texto. Sus identificadores de tipo son 1 y 3 respectivamente.
4.3 Modificar documentos DOM
La API para modificar documentos DOM se describe en la Especificación principal de nivel 2 de DOM y se implementa en org.xml.dom en jkd 1.4.
4.3 Modificar documentos DOM
La modificación de documentos DOM se concentra principalmente en Documento, Elemento, Nodo, Texto y otras clases. El ejemplo dado aquí es agregar una serie de objetos al documento DOM analizado, lo que equivale a agregar un registro al archivo XML.
// Obtener el objeto raíz
Elemento root = document.getDocumentElement();
// Agregar un nodo de elemento al documento DOM
Elemento booktype = document.createElement("COMPUTES");
// Agrega un nodo de elemento al documento DOM.
createElement("Title");
//Convierte este nodo en un hijo del objeto tipo libro
booktype.appendChild(booktitle);
//Agregar un nodo Elemento al DOM document.createTextNode("understand Corba");
//Convierte este nodo en un hijo del objeto bookname
booktitle.appendChild( bookname);
4.4 Convertir documentos DOM a archivos XML
//Obtenga el convertidor para convertir documentos DOM a archivos XML. En jdk1.4, hay una clase TransformerFactory
. //Para lograr esto, la clase Transformer implementa la API de transformación.
TransformerFactory tfactory = TransformerFactory.newInstance();
Transformer transformador = tfactory.newTransformer();
// Convierte el objeto DOM en un objeto de clase DOMSource, este objeto sirve como contenedor para convertir información en otras expresiones.
DOMSource source = new DOMSource(document);
// Obtiene un objeto de clase StreamResult que puede acomodar otras formas de documentos convertidos a partir de documentos DOM
Puede ser un archivo XML, un archivo de texto o un archivo HTML. A continuación se muestra un archivo XML. */
Resultado de StreamResult = new StreamResult(new File("text.xml"));
// Llame a la API para convertir el documento DOM en un archivo XML.
transformador.transform(fuente,resultado);
El programa completo de esta rutina se proporciona aquí y se puede ejecutar en el entorno jdk1.4 de Windows 2000.
Arriba se proporciona un ejemplo, a partir del cual los lectores pueden comprender la idea de manipular DOM. Dado que el funcionamiento de DOM sigue la especificación DOM, también es aplicable al procesamiento de DOM mediante otros lenguajes.