La investigación principal en este artículo es el código relevante de Java que usa DOM para agregar, eliminar, modificar y buscar documentos XML. Los ejemplos específicos son como se muestra a continuación.
Código fuente:
paquete com.zc.homework18; import java.io.file; import javax.xml.parsers.documentBuilder; import javax.xml.parsers.documentBuilderFactory; import javax.xml.transform.transformer; import javax.xml.transformerfactory; importar; import javax.xml.transform.dom.domSource; import javax.xml.transform.stream.streamResult; import javax.xml.xpath.xpath; import javax.xml.xpath.xpathconstants; import javax.xml.xpath.xpathexpression; javax.xml.xpath.xpathFactory; import org.w3c.dom.document; import org.w3c.dom.element; import og.w3c.dom.node; import og.w3c.dom.nodeList; public class xmlwriter {string static private static xmlpath = "src // com // zc // homework18 // Myxml.xml.xml.xml.xml.xml.xml.xml.xml.xml.xml.xml.xml.xml. public static void getFamilyMEmebers () { /** Crear una instancia de fábrica de archivos* / documentBuilderFactory dbf = documentBuilderFactory.newinStance (); // Si el analizador creado debe eliminar los espacios en el contenido del elemento al analizar un documento XML, es verdadero, de lo contrario es falso dbf.setignoringElementContentWhiteSpace (verdadero); Pruebe {/** cree un objeto de archivo*/ documentBuilder db = dbf.newDocumentBuilder (); // Cree un analizador para analizar el documento XML Docum Doc = db.parse (xmlpath); // Use DOM para analizar un archivo XML/** Realice la lista y extraiga los datos del archivo XML*/ // Obtenga todos los nodos relacionados de acuerdo con el nombre del nodo nodo SONLIST = DOC.GETELEMENTSBYTAGNAME ("Son"); for (int i = 0; i <sonlist.getLength (); i ++) // Objeto de procesamiento de bucle {// Procesamiento de atributos de nodo elemento son = (elemento) sonlist.item (i); // Todos los nodos infantiles en el Nodo de bucle son para (nodo = son.getFirstChild (); node! = Null; node = node .getNextSibling ()) {// Determinar si es un elemento nodo if (node.getNodeType () == node.element_node) {string name = node.getNodeName (); String value = node.getFirstChild (). GetNodeValue (); System.out.println (nombre + ":" + valor); }}}} capt (excepción e) {system.out.println (e.getMessage ()); }}} // Modificar public static void modifyson () {// Crear instancia de fábrica de archivos DocumentBuilderFactory dbf = documentBuilderFactory.newinstance (); dbf.SetignoringElementContentWhiteSpace (verdadero); Pruebe {// Obtener una instancia de documento DOM del documento XML DocumentBuilder db = dbf.newDocumentBuilder (); // Obtener objeto de documento Documento xmldoc = db.parse (xmlpath); // Obtener elemento de nodo raíz root = xmldoc.getDocumentElement (); // Nodo de posición con el elemento ID 001 per = (elemento) selectsingLenode ("/padre/son [@id = '001']", root); // Cambiar el contenido del nodo de edad a 28 per.getElementsBytagName ("edad"). Item (0) .setTextContent ("28"); // Guardar transformerFactory fábrica = transformerFactory.newinStance (); Transformer ex = factory.newtransformer (); antiguo } catch (Exception e) {System.out.println (e.getMessage ()); }} // Obtenga el nodo de destino, elimine y finalmente guarde el público void estático Discardson () {DocumentBuilderFactory dbf = documentBuilderFactory.newinstance (); dbf.SetignoringElementContentWhiteSpace (verdadero); intente {documentBuilder db = dbf.newDocumentBuilder (); Documento xmldoc = db.parse (xmlpath); // Obtener el elemento del nodo raíz root = xmldoc.getDocumentElement (); // coloca el nodo con id = 002 en el elemento del nodo raíz son = (elemento) selectsinglenode ("/padre/son [@id = '002']", raíz); // eliminar el nodo root.removechild (hijo); // Guardar transformerFactory fábrica = transformerFactory.newinStance (); Transformer ex = factory.newtransformer (); antiguo } catch (Exception e) {System.out.println (e.getMessage ()); }} // Agregue un nuevo nodo public static void CreateSon () {// Crear instancia de fábrica de archivos DocumentBuilderFactory dbf = documentBuilderFactory.newinstance (); dbf.SetignoringElementContentWhiteSpace (falso); intente {documentBuilder db = dbf.newDocumentBuilder (); // Crear objeto de documento Documento xmldoc = db.parse (xmlpath); // Obtener el elemento del nodo raíz root = xmldoc.getDocumentElement (); // Crea Node Son, establezca la ID correspondiente en 004 Elemento son = xmldoc.createElement ("hijo"); son.SetAttribute ("id", "004"); // Crear nombre de nombre del elemento Nombre = xmldoc.createElement ("nombre"); name.setTextContent ("pequeño hijo"); Son.appendChild (nombre); // crear el elemento de edad del nodo Age = xmldoc.createElement ("edad"); Age.setTextContent ("0"); Son.appendChild (edad); // Agregar hijo a la raíz del nodo raíz.appendChild (hijo); // Guardar transformerFactory fábrica = transformerFactory.newinStance (); Transformer ex = factory.newtransformer (); antiguo } catch (Exception e) {System.out.println (e.getMessage ()); }} // Modificar información del nodo Nodo estático SelectSingLenode (String Expression, Element Source) {nodo result = null; // Crear xpath fábrica xpathfactory xpathFactory = xpathfactory.newinstance (); // Crear objeto XPATH XPATH XPATH = XPATHFACTORY.NEWXPATH (); intente {resultado = (nodo) xpath.evaluate (express, fuente, xpathconstants.node); System.out.println (resultado); } Catch (xpathexpressionException e) {system.out.println (e.getMessage ()); } resultado de retorno; } // imprime public static void main (string [] args) {getFamilyMEmelBers (); System.out.println ("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ System.out.println ("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ System.out.println ("Agregar datos");Archivos XML
<? xml versión = "1.0" encoding = "utf-8" standalone = "no"?> <padre> <son id = "001"> <name> boss </name> <ge> 20 </age> </son> <son id = "002"> <name> segundo </name> <ge> 18 </age> </son> <son id = "003"> <name> laster </name> <name> <ge> 13 </dge> </on> </ padre>
Resumir
Lo anterior es todo el contenido de este artículo sobre el código de ejemplo de Java usando DOM para agregar, eliminar, modificar y buscar documentos XML. Espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!