Bueno amigos aqui os dejo una clase que acabo de programar, le faltan cosas, como por ejemplo escritura en tags (aun no me han respondido al mensaje, si lo supiese ya habria implementado ene sta clase) bueno, la clase permite obtener contenido de tags, setear la ruta del archivo, obtener el arbol...
Para los que quieran simplificar mucho la lectura de archivos por tags. Ayudará a salir del paso, en cosas como leer configuraciones, dicionarios...
Código
Peroooo... tanto codigo para que? diran los nuevos en el mundo de java, por eso existen los API ´ s, para explicar como fucniona un codigo
package cliente; //Para elhacker.net programado por Debci import java.io.File; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; import org.w3c.dom.Document; import org.w3c.dom.NodeList; import org.w3c.dom.Node; import org.w3c.dom.Element; public class LecturaXML { LecturaXML XML = new LecturaXML(); XML.setArchivo("$HOME/Escritorio/archivo.xml"); XML.getRaiz(); try { DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); doc.getDocumentElement().normalize(); NodeList listaPersonas = doc.getElementsByTagName("persona"); for (int i = 0; i < listaPersonas.getLength(); i ++) { Node persona = listaPersonas.item(i); if (persona.getNodeType() == Node.ELEMENT_NODE) { } } e.printStackTrace(); } } { NodeList nlList= eElement.getElementsByTagName(sTag).item(0).getChildNodes(); Node nValue = (Node) nlList.item(0); return nValue.getNodeValue(); } this.url = url; } this.nombre = nombre; this.identificador = identificador; } return raiz; } }
Una pequeña, muy reducida api:
La clase base es LecturaXML, ya creada como objeto XML, por tanto para usar alguno de sus emtodos usamos XML.metodo (Usaremos XML para explicar el API), hasta aqui bien.
Metodo setArchivo
Código
Con este método indicamos y guardamos en un variable (Objeto) la ruta del archivo a leer.
XML.setArchivo("ruta de nuestro archivo XML");
Metodo getTag
Código
Esto nos sirve para sacar datos de las tags del archivo (que hayamos seteado con setArchivo) y darle directamente un texto previo explicativo.
XML.getTag("Texto previo: " + "id del tag al que queremos leer el contenido");
Nos devolverá el contenido del tag (suponiendo que sea 1) nos daria un out asi:
Texto previo: 1
Método getRaiz
Código
Nos devolverá el tag raiz del archivo (que hayamos seteado con setArchivo), no tiene argumentos.
XML.getRaiz();
tmabien hay getTagValue, mas avanzado pero lo vi complicado para los que empiezan, por eso lo simplifiqué sin eliminarlo por si acaso.
Ejemplo práctico:
Que es el XML? es un lenguaje por tags normalmente suado para archivos de configuración y pequeñas o grandes bases de datos, asi como sitios webs, todos los elementos van separados por tags, es decir empieza tga1 hola acaba tag1 y el contenido de este es hola. Para entenderlo mejor:
Si no sabeis lo que son tits, buscad en el dicionario-traductor inglés....
Una vez sabemos lo que es el XML, o por lo menos tenemos una ligera idea, vamos a crear el archivo XML para nuestro ejemplo, que tendrá por nombre hacking.xml.
Archivo XML:
Código
Es necesario adaptar el codigo dependiendo del tag raiz del archivo (no es muy dificil, en proximas updates del paquete y clase, se podra hacer con un metodo.)
//Archivo: hacking.xml <hacking> <phishing>Un metodo de hacking</phishing> <ingenieriainversa>Debug, cracking...</ingenieriainversa> <defacing>Hack de sitios webs a partir de vulnerabilidades</defacing> </hacking>
Código
Obtendriamos esto:
package main; import pakete.cliente; //la clase anteriormente explicada LecturaXML XML = new LecturaXML(); XML.setArchivo("/home/debci/hacking.xml"); XML.getRaiz(); XML.getTag("Descripción: " , "defacing");//Hemos buscado el contenido del tag defacing, por lo tanto nos devuelve su descripción y para amenizar le ponemos un Texto precursor Descripción }
Citar
El elemento raíz es: hacking
Descripción: Hack de sitios webs a partir de vulnerabilidades
Descripción: Hack de sitios webs a partir de vulnerabilidades
Saludos
PD: No sean severos apenas tengo 15 añitos, y haber si pueden responder como escrbir en tags de un xml, que ando buscando y harto ya de no encontrar.
Espero que les guste
Y les funcione jeje