entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Obtener información de varios archivos almacenados en una carpeta xml

Este es el codigo que tengo para obtener información de un XML, del cual yo inserto la ruta, pero quisiera leer una carpeta que
puede contener n cantidad de xml

   public class Interpretarxml {

    public static void main (String[]args){
        try{
        DocumentBuilderFactory db= DocumentBuilderFactory.newInstance();
        //Agilizar la lectura de arhivos grandes
        db.setNamespaceAware(false);
        db.setValidating(false);
        db.setFeature("http://xml.org/sax/features/namespaces", false);
        db.setFeature("http://xml.org/sax/features/validation", false);
        db.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false);
        db.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
        //Constructor de Objetos
        DocumentBuilder a= db.newDocumentBuilder();
        //Ruta del Archivo
        String archivo="C:\\Users\\carme\\OneDrive\\Escritorio\\Documentos\\NetBeansProjects\\Practicarxml\\src\\main\\java\\LeerXml\\1b254147-26f4-4ca9-8f85-3d5da753dc99.xml";
        File f=new File(archivo);    
        //Objeto Documento XML
        Document doc= a.parse(f);
        doc.getDocumentElement().normalize();

        XPath x= XPathFactory.newInstance().newXPath();
        String Tras="/Comprobante/Impuestos/Traslados/Traslado";

        NodeList n=(NodeList)x.compile(Tras).evaluate(doc,XPathConstants.NODESET);
            System.out.println("Cantidad de elementos que empatan con la ruta " + n.getLength());
            Element e= (Element)n.item(0);
            System.out.println("Importe\t\t: " + e.getAttribute("Importe"));
             System.out.println("TasaOCuota\t\t: " + e.getAttribute("TasaOCuota"));
              System.out.println("TipoFactor\t\t: " + e.getAttribute("TipoFactor"));
               System.out.println("Impuesto\t\t: " + e.getAttribute("Impuesto"));

               String Con="/Comprobante/Conceptos/Concepto";
               NodeList nodeC=(NodeList)x.compile(Con).evaluate(doc,XPathConstants.NODESET);
               System.out.println("Cantidad de Conceptos de la Factura");
               System.out.println(nodeC.getLength());
               System.out.println( "" );

               for (int i = 0; i < nodeC.getLength(); i++) {
                Node nodo= nodeC.item(i);
                if(nodo.getNodeType()==Node.ELEMENT_NODE){
                    Element s= (Element)nodo;
                    System.out.println("ClaveProdServ\t\t: " + s.getAttribute("ClaveProdServ"));
                    System.out.println("ClaveUnidad\t\t: " + s.getAttribute("ClaveUnidad"));
                    System.out.println("Descripciont\t\t: " + s.getAttribute("Descripcion"));
                    System.out.println("ValorUnitario\t\t: " + s.getAttribute("ValorUnitario"));
                    System.out.println("NoIdentificacion\t: " + s.getAttribute("NoIdentificacion"));
                    System.out.println("\n");
                }
            }

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta