Example usage for org.jdom2 Element getChildren

List of usage examples for org.jdom2 Element getChildren

Introduction

In this page you can find the example usage for org.jdom2 Element getChildren.

Prototype

public List<Element> getChildren() 

Source Link

Document

This returns a List of all the child elements nested directly (one level deep) within this element, as Element objects.

Usage

From source file:br.com.nfe.util.Chave.java

@Override
public void run() {

    while (true) {
        String chave = "";
        Document doc = null;/*w  ww .java 2s  .c  om*/
        SAXBuilder builder = new SAXBuilder();

        Path path = Paths.get("c:/unimake/uninfe/" + pasta + "/Retorno");
        WatchService watchService = null;
        try {
            watchService = FileSystems.getDefault().newWatchService();
            path.register(watchService, StandardWatchEventKinds.ENTRY_CREATE,
                    StandardWatchEventKinds.ENTRY_MODIFY, StandardWatchEventKinds.ENTRY_DELETE);

        } catch (IOException io) {
            io.printStackTrace();
        }
        WatchKey key = null;

        while (true) {
            try {
                key = watchService.take();

                for (WatchEvent<?> event : key.pollEvents()) {
                    Kind<?> kind = event.kind();
                    System.out.println("Evento em " + event.context().toString() + " " + kind);
                    try {

                        doc = builder.build(
                                "c:/unimake/uninfe/" + pasta + "/Retorno/" + cNf + "-ret-gerar-chave.xml");

                        Element retorno = doc.getRootElement();

                        List<Element> lista = retorno.getChildren();

                        for (Element e : lista) {

                            chave = e.getAttributeValue("chaveNFe");
                            chave = e.getText();

                        }
                        mudaChave(chave);
                        if (chave.isEmpty() == false) {
                            allDone = true;
                        }
                    } catch (Exception e) {

                        e.printStackTrace();

                    }

                }
            } catch (InterruptedException ie) {
                ie.printStackTrace();
            }

            boolean reset = key.reset();
            if (!reset) {
                break;
            }
            if (allDone) {
                return;
            }
        }

    }
}

From source file:ca.nrc.cadc.caom2.xml.ArtifactAccessReader.java

License:Open Source License

private void getGroupList(List<URI> fill, String ename, List<Element> elements) {
    if (elements == null || elements.isEmpty()) {
        return;//from w  w w.  j ava 2 s . c o  m
    }

    if (elements.size() > 1) {
        throw new IllegalArgumentException(
                "invalid input document: found multiple " + ename + " expected: 0 or 1");
    }
    Element ge = elements.get(0);
    for (Element e : ge.getChildren()) {
        if (!ENAMES.uri.name().equals(e.getName())) {
            throw new IllegalArgumentException(
                    "invalid child element in " + ename + ": " + e.getName() + " expected: uri");
        }
        URI guri = getURI(e.getTextTrim(), true);
        fill.add(guri);
    }
}

From source file:ca.nrc.cadc.caom2.xml.ObservationReader.java

License:Open Source License

protected Position getPosition(Element parent, Namespace namespace, ReadContext rc)
        throws ObservationParsingException {
    Element element = getChildElement("position", parent, namespace, false);
    if (element == null) {
        return null;
    }//from ww w  .  j  av a2  s.com

    Position pos = new Position();
    Element cur = getChildElement("bounds", element, namespace, false);
    if (cur != null) {
        if (rc.docVersion < 23) {
            throw new UnsupportedOperationException(
                    "cannot convert version " + rc.docVersion + " polygon to current version");
        }
        Attribute type = cur.getAttribute("type", xsiNamespace);
        String tval = type.getValue();
        String circleType = namespace.getPrefix() + ":" + Circle.class.getSimpleName();
        String polyType = namespace.getPrefix() + ":" + Polygon.class.getSimpleName();
        if (polyType.equals(tval)) {
            List<Point> points = new ArrayList<Point>();
            Element pes = cur.getChild("points", namespace);
            for (Element pe : pes.getChildren()) { // only vertex
                double cval1 = getChildTextAsDouble("cval1", pe, namespace, true);
                double cval2 = getChildTextAsDouble("cval2", pe, namespace, true);
                points.add(new Point(cval1, cval2));
            }
            Element se = cur.getChild("samples", namespace);
            MultiPolygon poly = new MultiPolygon();
            Element ves = se.getChild("vertices", namespace);
            for (Element ve : ves.getChildren()) { // only vertex
                double cval1 = getChildTextAsDouble("cval1", ve, namespace, true);
                double cval2 = getChildTextAsDouble("cval2", ve, namespace, true);
                int sv = getChildTextAsInteger("type", ve, namespace, true);
                poly.getVertices().add(new Vertex(cval1, cval2, SegmentType.toValue(sv)));
            }
            pos.bounds = new Polygon(points, poly);
        } else if (circleType.equals(tval)) {
            Element ce = cur.getChild("center", namespace);
            double cval1 = getChildTextAsDouble("cval1", ce, namespace, true);
            double cval2 = getChildTextAsDouble("cval2", ce, namespace, true);
            Point c = new Point(cval1, cval2);
            double r = getChildTextAsDouble("radius", cur, namespace, true);
            pos.bounds = new Circle(c, r);
        } else {
            throw new UnsupportedOperationException("unsupported shape: " + tval);
        }
    }

    cur = getChildElement("dimension", element, namespace, false);
    if (cur != null) {
        // Attribute type = cur.getAttribute("type", xsiNamespace);
        // String tval = type.getValue();
        // String extype = namespace.getPrefix() + ":" +
        // Dimension2D.class.getSimpleName();
        // if ( extype.equals(tval) )
        // {
        long naxis1 = getChildTextAsLong("naxis1", cur, namespace, true);
        long naxis2 = getChildTextAsLong("naxis2", cur, namespace, true);
        pos.dimension = new Dimension2D(naxis1, naxis2);
        // }
        // else
        // throw new ObservationParsingException("unsupported dimension
        // type: " + tval);
    }

    pos.resolution = getChildTextAsDouble("resolution", element, namespace, false);
    pos.sampleSize = getChildTextAsDouble("sampleSize", element, namespace, false);
    pos.timeDependent = getChildTextAsBoolean("timeDependent", element, namespace, false);

    return pos;
}

From source file:ca.nrc.cadc.caom2.xml.ObservationReader.java

License:Open Source License

protected Polarization getPolarization(Element parent, Namespace namespace, ReadContext rc)
        throws ObservationParsingException {
    Element element = getChildElement("polarization", parent, namespace, false);
    if (element == null) {
        return null;
    }/*w w  w.  ja va 2  s  .  c o m*/

    Polarization pol = new Polarization();
    Element cur = getChildElement("states", element, namespace, false);
    if (cur != null) {
        List<Element> ces = cur.getChildren();
        pol.states = new ArrayList<PolarizationState>(ces.size());
        for (Element e : ces) {
            String ss = e.getTextTrim();
            PolarizationState ps = PolarizationState.valueOf(ss);
            pol.states.add(ps);
        }
    }

    cur = getChildElement("dimension", element, namespace, false);
    if (cur != null) {
        // Attribute type = cur.getAttribute("type", xsiNamespace);
        // String tval = type.getValue();
        // String extype = namespace.getPrefix() + ":" +
        // Integer.class.getSimpleName();
        // if ( extype.equals(tval) )
        // {
        pol.dimension = getChildTextAsLong("dimension", element, namespace, true);
        // }
        // else
        // throw new ObservationParsingException("unsupported dimension
        // type: " + tval);
    }

    return pol;
}

From source file:ca.nrc.cadc.uws.JobListReader.java

License:Open Source License

private List<JobRef> parseJobList(Document doc) throws ParseException, DataConversionException {
    Element root = doc.getRootElement();
    List<Element> children = root.getChildren();
    Iterator<Element> childIterator = children.iterator();
    List<JobRef> jobs = new ArrayList<JobRef>();
    Element next = null;//from   w ww.  j  a  v  a  2  s . c o m
    JobRef jobRef = null;
    ExecutionPhase executionPhase = null;
    Date creationTime = null;
    Attribute nil = null;
    String runID = null;
    String ownerID = null;
    while (childIterator.hasNext()) {
        next = childIterator.next();
        String jobID = next.getAttributeValue("id");

        Element phaseElement = next.getChild(JobAttribute.EXECUTION_PHASE.getAttributeName(), UWS.NS);
        String phase = phaseElement.getValue();
        executionPhase = ExecutionPhase.valueOf(phase);

        Element creationTimeElement = next.getChild(JobAttribute.CREATION_TIME.getAttributeName(), UWS.NS);
        String time = creationTimeElement.getValue();
        creationTime = dateFormat.parse(time);

        Element runIDElement = next.getChild(JobAttribute.RUN_ID.getAttributeName(), UWS.NS);
        nil = runIDElement.getAttribute("nil", UWS.XSI_NS);
        if (nil != null && nil.getBooleanValue())
            runID = null;
        else
            runID = runIDElement.getTextTrim();

        Element ownerIDElement = next.getChild(JobAttribute.OWNER_ID.getAttributeName(), UWS.NS);
        ownerID = ownerIDElement.getTextTrim();

        jobRef = new JobRef(jobID, executionPhase, creationTime, runID, ownerID);
        jobs.add(jobRef);
    }

    return jobs;
}

From source file:ca.nrc.cadc.uws.JobReader.java

License:Open Source License

private JobInfo parseJobInfo(Document doc) {
    JobInfo rtn = null;/*from  w ww  . j a  v a2 s  . c o  m*/
    Element root = doc.getRootElement();
    Element e = root.getChild(JobAttribute.JOB_INFO.getAttributeName(), UWS.NS);
    if (e != null) {
        log.debug("found jobInfo element");
        String content = e.getText();
        List children = e.getChildren();
        if (content != null)
            content = content.trim();
        if (content.length() > 0) // it was text content
        {
            rtn = new JobInfo(content, null, null);
        } else if (children != null) {
            if (children.size() == 1) {
                try {
                    Element ce = (Element) children.get(0);
                    Document jiDoc = new Document((Element) ce.detach());
                    XMLOutputter outputter = new XMLOutputter();
                    StringWriter sw = new StringWriter();
                    outputter.output(jiDoc, sw);
                    sw.close();
                    rtn = new JobInfo(sw.toString(), null, null);

                } catch (IOException ex) {
                    throw new RuntimeException("BUG while writing element to string", ex);
                }
            }
        }
    }
    log.debug("parseJobInfo: " + rtn);
    return rtn;
}

From source file:ca.nrc.cadc.xml.JsonOutputter.java

License:Open Source License

private boolean writeChildElements(Element e, PrintWriter w, int i, boolean listItem, boolean parentAttrs)
        throws IOException {
    boolean ret = false;
    Iterator<Element> iter = e.getChildren().iterator();
    if (iter.hasNext() && (parentAttrs && !listItem))
        w.print(",");
    while (iter.hasNext()) {
        ret = true;/*from   ww  w . ja va 2  s  .  co m*/
        Element c = iter.next();
        writeElement(c, w, i, listItem);
        if (iter.hasNext())
            w.print(",");
    }
    return ret;
}

From source file:cager.parser.test.SimpleTest2.java

License:Open Source License

private void XMLtoJavaParser() {

    // Creamos el builder basado en SAX  
    SAXBuilder builder = new SAXBuilder();

    try {/*  www. j av a  2s .c om*/

        String nombreMetodo = null;
        List<String> atributos = new ArrayList<String>();
        String tipoRetorno = null;
        String nombreArchivo = null;
        String exportValue = "";
        String codigoFuente = "";
        HashMap<String, String> tipos = new HashMap<String, String>();

        // Construimos el arbol DOM a partir del fichero xml  
        Document doc = builder.build(new FileInputStream(ruta + "VBParser\\ejemplosKDM\\archivo.kdm"));
        //Document doc = builder.build(new FileInputStream("E:\\WorkspaceParser\\VBParser\\ejemplosKDM\\archivo.kdm"));    

        Namespace xmi = Namespace.getNamespace("xmi", "http://www.omg.org/XMI");

        XPathExpression<Element> xpath = XPathFactory.instance().compile("//codeElement", Filters.element());

        List<Element> elements = xpath.evaluate(doc);

        for (Element emt : elements) {

            if (emt.getAttribute("type", xmi).getValue().compareTo("code:CompilationUnit") == 0) {

                nombreArchivo = emt.getAttributeValue("name").substring(0,
                        emt.getAttributeValue("name").indexOf('.'));

            }

            if (emt.getAttribute("type", xmi).getValue().compareTo("code:LanguageUnit") == 0) {

                List<Element> hijos = emt.getChildren();

                for (Element hijo : hijos) {

                    tipos.put(hijo.getAttributeValue("id", xmi), hijo.getAttributeValue("name"));

                }

            }
        }

        FileOutputStream fout;

        fout = new FileOutputStream(ruta + "VBParser\\src\\cager\\parser\\test\\" + nombreArchivo + ".java");
        //fout = new FileOutputStream("E:\\WorkspaceParser\\VBParser\\src\\cager\\parser\\test\\"+nombreArchivo+".java");           
        // get the content in bytes
        byte[] contentInBytes = null;

        contentInBytes = ("package cager.parser.test;\n\n").getBytes();

        fout.write(contentInBytes);
        fout.flush();

        contentInBytes = ("public class " + nombreArchivo + "{\n\n").getBytes();

        fout.write(contentInBytes);
        fout.flush();

        for (Element emt : elements) {
            // System.out.println("XPath has result: " + emt.getName()+" "+emt.getAttribute("type",xmi));
            if (emt.getAttribute("type", xmi).getValue().compareTo("code:MethodUnit") == 0) {

                nombreMetodo = emt.getAttribute("name").getValue();

                if (emt.getAttribute("export") != null)
                    exportValue = emt.getAttribute("export").getValue();

                atributos = new ArrayList<String>();

                List<Element> hijos = emt.getChildren();

                for (Element hijo : hijos) {

                    if (hijo.getAttribute("type", xmi) != null) {

                        if (hijo.getAttribute("type", xmi).getValue().compareTo("code:Signature") == 0) {

                            List<Element> parametros = hijo.getChildren();

                            for (Element parametro : parametros) {

                                if (parametro.getAttribute("kind") == null
                                        || parametro.getAttribute("kind").getValue().compareTo("return") != 0) {
                                    atributos.add(tipos.get(parametro.getAttribute("type").getValue()) + " "
                                            + parametro.getAttributeValue("name"));
                                } else {
                                    tipoRetorno = tipos.get(parametro.getAttribute("type").getValue());
                                }

                            }

                        }
                    } else if (hijo.getAttribute("snippet") != null) {

                        codigoFuente = hijo.getAttribute("snippet").getValue();

                    }

                }

                //System.out.println("MethodUnit!! " + emt.getName()+" "+emt.getAttribute("type",xmi)+" "+emt.getAttribute("name").getValue());
                //System.out.println(emt.getAttribute("name").getValue());

                if (tipoRetorno.compareTo("Void") == 0) {
                    tipoRetorno = "void";
                }

                contentInBytes = ("\t" + exportValue + " " + tipoRetorno + " " + nombreMetodo + " (")
                        .getBytes();

                fout.write(contentInBytes);
                fout.flush();
                int n = 0;
                for (String parametro : atributos) {

                    if (atributos.size() > 0 && n < atributos.size() - 1) {
                        contentInBytes = (" " + parametro + ",").getBytes();
                    } else {
                        contentInBytes = (" " + parametro).getBytes();
                    }

                    fout.write(contentInBytes);
                    fout.flush();
                    n++;
                }

                contentInBytes = (" ) {\n").getBytes();

                fout.write(contentInBytes);
                fout.flush();

                contentInBytes = ("\n/* \n " + codigoFuente + " \n */\n").getBytes();

                fout.write(contentInBytes);
                fout.flush();

                contentInBytes = ("\t}\n\n").getBytes();

                fout.write(contentInBytes);
                fout.flush();

                System.out.print("\t" + exportValue + " " + tipoRetorno + " " + nombreMetodo + " (");
                n = 0;
                for (String parametro : atributos) {
                    if (atributos.size() > 0 && n < atributos.size() - 1) {
                        System.out.print(" " + parametro + ", ");
                    } else {
                        System.out.print(" " + parametro);
                    }
                    n++;

                }
                System.out.println(" ) {");
                System.out.println("/* \n " + codigoFuente + " \n */");
                System.out.println("\t}\n");
            }

        }

        contentInBytes = ("}\n").getBytes();

        fout.write(contentInBytes);
        fout.flush();
        fout.close();

        XPathExpression<Attribute> xp = XPathFactory.instance().compile("//@*", Filters.attribute(xmi));
        for (Attribute a : xp.evaluate(doc)) {
            a.setName(a.getName().toLowerCase());
        }

        xpath = XPathFactory.instance().compile("//codeElement/@name='testvb.cls'", Filters.element());
        Element emt = xpath.evaluateFirst(doc);
        if (emt != null) {
            System.out.println("XPath has result: " + emt.getName());
        }

    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (JDOMException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

From source file:cfdi.clases.UtilidadesArchivoCfdi.java

License:Open Source License

/**
* Proceso de parseo del XML al objeto estructura layout
* El objeto layout es el que se pasa como parametro al reporte
* 
* @param rutaArchivo ruta donde se va a colocar el archivo
* @param nombreArchivo nombre del archivo a exportar
* @param showLog guardar informacin del inicio y finilizacion del proceso de exportacin
* @return EstructuraLayout// ww  w . j  ava  2 s . com
*/
public EstructuraLayout parseLayout(String rutaArchivo, String nombreArchivo, boolean showLog) {
    EstructuraLayout layout = null;
    if (showLog)
        logger.log(Level.INFO, "Inicia parse {0}", nombreArchivo);
    try {
        File archivo;
        archivo = new File(rutaArchivo + nombreArchivo);
        SAXBuilder constructorSAX = new SAXBuilder();
        try {
            layout = new EstructuraLayout();
            layout.setRutaArchivo(rutaArchivo);
            layout.setNombreArchivo(nombreArchivo);
            Document documento = (Document) constructorSAX.build(archivo);
            layout.setVersion(documento.getRootElement().getAttribute("version") != null
                    ? documento.getRootElement().getAttribute("version").getValue()
                    : (documento.getRootElement().getAttribute("Version") != null
                            ? documento.getRootElement().getAttribute("Version").getValue()
                            : ""));
            layout.setSerie(documento.getRootElement().getAttribute("serie") != null
                    ? documento.getRootElement().getAttribute("serie").getValue()
                    : (documento.getRootElement().getAttribute("Serie") != null
                            ? documento.getRootElement().getAttribute("Serie").getValue()
                            : ""));
            layout.setFolio(documento.getRootElement().getAttribute("folio") != null
                    ? documento.getRootElement().getAttribute("folio").getValue()
                    : (documento.getRootElement().getAttribute("Folio") != null
                            ? documento.getRootElement().getAttribute("Folio").getValue()
                            : ""));
            layout.setFecha(documento.getRootElement().getAttribute("fecha") != null
                    ? documento.getRootElement().getAttribute("fecha").getValue()
                    : (documento.getRootElement().getAttribute("Fecha") != null
                            ? documento.getRootElement().getAttribute("Fecha").getValue()
                            : ""));
            layout.setSello(documento.getRootElement().getAttribute("sello") != null
                    ? documento.getRootElement().getAttribute("sello").getValue()
                    : (documento.getRootElement().getAttribute("Sello") != null
                            ? documento.getRootElement().getAttribute("Sello").getValue()
                            : ""));
            layout.setFormaPago(documento.getRootElement().getAttribute("formaDePago") != null
                    ? documento.getRootElement().getAttribute("formaDePago").getValue()
                    : (documento.getRootElement().getAttribute("FormaDePago") != null
                            ? documento.getRootElement().getAttribute("FormaDePago").getValue()
                            : ""));
            layout.setNoCertificado(documento.getRootElement().getAttribute("noCertificado") != null
                    ? documento.getRootElement().getAttribute("noCertificado").getValue()
                    : (documento.getRootElement().getAttribute("NoCertificado") != null
                            ? documento.getRootElement().getAttribute("NoCertificado").getValue()
                            : ""));
            layout.setCertificado(documento.getRootElement().getAttribute("certificado") != null
                    ? documento.getRootElement().getAttribute("certificado").getValue()
                    : (documento.getRootElement().getAttribute("Certificado") != null
                            ? documento.getRootElement().getAttribute("Certificado").getValue()
                            : ""));
            layout.setSubtotal(documento.getRootElement().getAttribute("subTotal") != null
                    ? documento.getRootElement().getAttribute("subTotal").getValue()
                    : (documento.getRootElement().getAttribute("SubTotal") != null
                            ? documento.getRootElement().getAttribute("SubTotal").getValue()
                            : ""));
            layout.setImporteLetras(NumberToLetterConvert
                    .convertNumberToLetter(documento.getRootElement().getAttribute("total") != null
                            ? documento.getRootElement().getAttribute("total").getValue()
                            : (documento.getRootElement().getAttribute("Total") != null
                                    ? documento.getRootElement().getAttribute("Total").getValue()
                                    : "")));
            layout.setTotal(documento.getRootElement().getAttribute("total") != null
                    ? documento.getRootElement().getAttribute("total").getValue()
                    : (documento.getRootElement().getAttribute("Total") != null
                            ? documento.getRootElement().getAttribute("Total").getValue()
                            : ""));
            layout.setDescuento(documento.getRootElement().getAttribute("descuento") != null
                    ? documento.getRootElement().getAttribute("descuento").getValue()
                    : (documento.getRootElement().getAttribute("Descuento") != null
                            ? documento.getRootElement().getAttribute("Descuento").getValue()
                            : ""));
            layout.setMotivoDescuento(documento.getRootElement().getAttribute("motivoDescuento") != null
                    ? documento.getRootElement().getAttribute("motivoDescuento").getValue()
                    : (documento.getRootElement().getAttribute("MotivoDescuento") != null
                            ? documento.getRootElement().getAttribute("MotivoDescuento").getValue()
                            : ""));
            layout.setTipoCambio(documento.getRootElement().getAttribute("TipoCambio") != null
                    ? documento.getRootElement().getAttribute("TipoCambio").getValue()
                    : (documento.getRootElement().getAttribute("tipoCambio") != null
                            ? documento.getRootElement().getAttribute("tipoCambio").getValue()
                            : ""));
            layout.setMoneda(documento.getRootElement().getAttribute("Moneda") != null
                    ? documento.getRootElement().getAttribute("Moneda").getValue()
                    : (documento.getRootElement().getAttribute("moneda") != null
                            ? documento.getRootElement().getAttribute("moneda").getValue()
                            : ""));
            layout.setMetodoPago(documento.getRootElement().getAttribute("metodoDePago") != null
                    ? documento.getRootElement().getAttribute("metodoDePago").getValue()
                    : (documento.getRootElement().getAttribute("MetodoDePago") != null
                            ? documento.getRootElement().getAttribute("MetodoDePago").getValue()
                            : ""));
            layout.setTipodeComprobante(documento.getRootElement().getAttribute("tipoDeComprobante") != null
                    ? documento.getRootElement().getAttribute("tipoDeComprobante").getValue()
                    : (documento.getRootElement().getAttribute("TipoDeComprobante") != null
                            ? documento.getRootElement().getAttribute("TipoDeComprobante").getValue()
                            : ""));
            layout.setLugarExpedicion(documento.getRootElement().getAttribute("LugarExpedicion") != null
                    ? documento.getRootElement().getAttribute("LugarExpedicion").getValue()
                    : (documento.getRootElement().getAttribute("lugarExpedicion") != null
                            ? documento.getRootElement().getAttribute("lugarExpedicion").getValue()
                            : ""));
            layout.setNumCtaPago(documento.getRootElement().getAttribute("NumCtaPago") != null
                    ? documento.getRootElement().getAttribute("NumCtaPago").getValue()
                    : (documento.getRootElement().getAttribute("numCtaPago") != null
                            ? documento.getRootElement().getAttribute("numCtaPago").getValue()
                            : ""));
            layout.setCondicionesDePago(documento.getRootElement().getAttribute("condicionesDePago") != null
                    ? documento.getRootElement().getAttribute("condicionesDePago").getValue()
                    : (documento.getRootElement().getAttribute("CondicionesDePago") != null
                            ? documento.getRootElement().getAttribute("CondicionesDePago").getValue()
                            : ""));
            Element emisor = documento.getRootElement().getChild("Emisor",
                    Namespace.getNamespace("cfdi", "http://www.sat.gob.mx/cfd/3"));
            layout.setRFC(emisor.getAttribute("rfc") != null ? emisor.getAttribute("rfc").getValue()
                    : (emisor.getAttribute("Rfc") != null ? emisor.getAttribute("Rfc").getValue() : ""));
            Element domicilioEmisor = emisor.getChild("DomicilioFiscal",
                    Namespace.getNamespace("cfdi", "http://www.sat.gob.mx/cfd/3"));
            if (domicilioEmisor != null) {
                layout.setCp_df(domicilioEmisor.getAttribute("codigoPostal") != null
                        ? domicilioEmisor.getAttribute("codigoPostal").getValue()
                        : (domicilioEmisor.getAttribute("CodigoPostal") != null
                                ? domicilioEmisor.getAttribute("CodigoPostal").getValue()
                                : ""));
                layout.setPais_df(domicilioEmisor.getAttribute("pais") != null
                        ? domicilioEmisor.getAttribute("pais").getValue()
                        : (domicilioEmisor.getAttribute("Pais") != null
                                ? domicilioEmisor.getAttribute("Pais").getValue()
                                : ""));
                layout.setEstado_df(domicilioEmisor.getAttribute("estado") != null
                        ? domicilioEmisor.getAttribute("estado").getValue()
                        : (domicilioEmisor.getAttribute("Estado") != null
                                ? domicilioEmisor.getAttribute("Estado").getValue()
                                : ""));
                layout.setMunicipio_df(domicilioEmisor.getAttribute("municipio") != null
                        ? domicilioEmisor.getAttribute("municipio").getValue()
                        : (domicilioEmisor.getAttribute("Municipio") != null
                                ? domicilioEmisor.getAttribute("Municipio").getValue()
                                : ""));
                layout.setColonia_df(domicilioEmisor.getAttribute("colonia") != null
                        ? domicilioEmisor.getAttribute("colonia").getValue()
                        : (domicilioEmisor.getAttribute("Colonia") != null
                                ? domicilioEmisor.getAttribute("Colonia").getValue()
                                : ""));
                layout.setNoInterior_df(domicilioEmisor.getAttribute("noInterior") != null
                        ? domicilioEmisor.getAttribute("noInterior").getValue()
                        : (domicilioEmisor.getAttribute("NoInterior") != null
                                ? domicilioEmisor.getAttribute("NoInterior").getValue()
                                : ""));
                layout.setNoExterior_df(domicilioEmisor.getAttribute("noExterior") != null
                        ? domicilioEmisor.getAttribute("noExterior").getValue()
                        : (domicilioEmisor.getAttribute("NoExterior") != null
                                ? domicilioEmisor.getAttribute("NoExterior").getValue()
                                : ""));
                layout.setCalle_df(domicilioEmisor.getAttribute("calle") != null
                        ? domicilioEmisor.getAttribute("calle").getValue()
                        : (domicilioEmisor.getAttribute("Calle") != null
                                ? domicilioEmisor.getAttribute("Calle").getValue()
                                : ""));
                layout.setColonia_df(domicilioEmisor.getAttribute("localidad") != null
                        ? domicilioEmisor.getAttribute("localidad").getValue()
                        : (domicilioEmisor.getAttribute("Localidad") != null
                                ? domicilioEmisor.getAttribute("Localidad").getValue()
                                : ""));
            }
            Element expedidoEn = emisor.getChild("ExpedidoEn",
                    Namespace.getNamespace("cfdi", "http://www.sat.gob.mx/cfd/3"));
            if (expedidoEn != null) {
                layout.setCp(expedidoEn.getAttribute("codigoPostal") != null
                        ? expedidoEn.getAttribute("codigoPostal").getValue()
                        : (expedidoEn.getAttribute("CodigoPostal") != null
                                ? expedidoEn.getAttribute("CodigoPostal").getValue()
                                : ""));
                layout.setPais(
                        expedidoEn.getAttribute("pais") != null ? expedidoEn.getAttribute("pais").getValue()
                                : (expedidoEn.getAttribute("Pais") != null
                                        ? expedidoEn.getAttribute("Pais").getValue()
                                        : ""));
                layout.setEstado(
                        expedidoEn.getAttribute("estado") != null ? expedidoEn.getAttribute("estado").getValue()
                                : (expedidoEn.getAttribute("Estado") != null
                                        ? expedidoEn.getAttribute("Estado").getValue()
                                        : ""));
                layout.setMunicipio(expedidoEn.getAttribute("municipio") != null
                        ? expedidoEn.getAttribute("municipio").getValue()
                        : (expedidoEn.getAttribute("Municipio") != null
                                ? expedidoEn.getAttribute("Municipio").getValue()
                                : ""));
                layout.setColonia(expedidoEn.getAttribute("colonia") != null
                        ? expedidoEn.getAttribute("colonia").getValue()
                        : (expedidoEn.getAttribute("Colonia") != null
                                ? expedidoEn.getAttribute("Colonia").getValue()
                                : ""));
                layout.setNoInterior(expedidoEn.getAttribute("noInterior") != null
                        ? expedidoEn.getAttribute("noInterior").getValue()
                        : (expedidoEn.getAttribute("NoInterior") != null
                                ? expedidoEn.getAttribute("NoInterior").getValue()
                                : ""));
                layout.setNoExterior(expedidoEn.getAttribute("noExterior") != null
                        ? expedidoEn.getAttribute("noExterior").getValue()
                        : (expedidoEn.getAttribute("NoExterior") != null
                                ? expedidoEn.getAttribute("NoExterior").getValue()
                                : ""));
                layout.setCalle(
                        expedidoEn.getAttribute("calle") != null ? expedidoEn.getAttribute("calle").getValue()
                                : (expedidoEn.getAttribute("Calle") != null
                                        ? expedidoEn.getAttribute("Calle").getValue()
                                        : ""));
            }
            Element regimenFiscal = emisor.getChild("RegimenFiscal",
                    Namespace.getNamespace("cfdi", "http://www.sat.gob.mx/cfd/3"));
            if (regimenFiscal != null) {
                layout.setRegimenFiscal(regimenFiscal.getAttribute("Regimen") != null
                        ? regimenFiscal.getAttribute("Regimen").getValue()
                        : (regimenFiscal.getAttribute("regimen") != null
                                ? regimenFiscal.getAttribute("regimen").getValue()
                                : ""));
            }
            layout.setNombreEmisor(emisor.getAttribute("nombre") != null
                    ? emisor.getAttribute("nombre").getValue()
                    : (emisor.getAttribute("Nombre") != null ? emisor.getAttribute("Nombre").getValue() : ""));
            Element receptor = documento.getRootElement().getChild("Receptor",
                    Namespace.getNamespace("cfdi", "http://www.sat.gob.mx/cfd/3"));
            layout.setNombreReceptor(
                    receptor.getAttribute("nombre") != null ? receptor.getAttribute("nombre").getValue()
                            : (receptor.getAttribute("Nombre") != null
                                    ? receptor.getAttribute("Nombre").getValue()
                                    : ""));
            layout.setRfcReceptor(receptor.getAttribute("rfc") != null ? receptor.getAttribute("rfc").getValue()
                    : (receptor.getAttribute("Rfc") != null ? receptor.getAttribute("Rfc").getValue() : ""));
            Element domicilioReceptor = receptor.getChild("Domicilio",
                    Namespace.getNamespace("cfdi", "http://www.sat.gob.mx/cfd/3"));
            if (domicilioReceptor != null) {
                layout.setCpReceptor(domicilioReceptor.getAttribute("codigoPostal") != null
                        ? domicilioReceptor.getAttribute("codigoPostal").getValue()
                        : (domicilioReceptor.getAttribute("CodigoPostal") != null
                                ? domicilioReceptor.getAttribute("CodigoPostal").getValue()
                                : ""));
                layout.setPaisReceptor(domicilioReceptor.getAttribute("pais") != null
                        ? domicilioReceptor.getAttribute("pais").getValue()
                        : (domicilioReceptor.getAttribute("Pais") != null
                                ? domicilioReceptor.getAttribute("Pais").getValue()
                                : ""));
                layout.setEstadoReceptor(domicilioReceptor.getAttribute("estado") != null
                        ? domicilioReceptor.getAttribute("estado").getValue()
                        : (domicilioReceptor.getAttribute("Estado") != null
                                ? domicilioReceptor.getAttribute("Estado").getValue()
                                : ""));
                layout.setMunicipioReceptor(domicilioReceptor.getAttribute("municipio") != null
                        ? domicilioReceptor.getAttribute("municipio").getValue()
                        : (domicilioReceptor.getAttribute("Municipio") != null
                                ? domicilioReceptor.getAttribute("Municipio").getValue()
                                : ""));
                layout.setColoniaReceptor(domicilioReceptor.getAttribute("colonia") != null
                        ? domicilioReceptor.getAttribute("colonia").getValue()
                        : (domicilioReceptor.getAttribute("Colonia") != null
                                ? domicilioReceptor.getAttribute("Colonia").getValue()
                                : ""));
                layout.setNoInteriorReceptor(domicilioReceptor.getAttribute("noInterior") != null
                        ? domicilioReceptor.getAttribute("noInterior").getValue()
                        : (domicilioReceptor.getAttribute("NoInterior") != null
                                ? domicilioReceptor.getAttribute("NoInterior").getValue()
                                : ""));
                layout.setNoExteriorReceptor(domicilioReceptor.getAttribute("noExterior") != null
                        ? domicilioReceptor.getAttribute("noExterior").getValue()
                        : (domicilioReceptor.getAttribute("NoExterior") != null
                                ? domicilioReceptor.getAttribute("NoExterior").getValue()
                                : ""));
                layout.setCalleReceptor(domicilioReceptor.getAttribute("calle") != null
                        ? domicilioReceptor.getAttribute("calle").getValue()
                        : (domicilioReceptor.getAttribute("Calle") != null
                                ? domicilioReceptor.getAttribute("Calle").getValue()
                                : ""));
            }
            Element impuestos = documento.getRootElement().getChild("Impuestos",
                    Namespace.getNamespace("cfdi", "http://www.sat.gob.mx/cfd/3"));
            if (impuestos != null) {
                layout.setRetenidos(impuestos.getAttribute("totalImpuestosRetenidos") != null
                        ? impuestos.getAttribute("totalImpuestosRetenidos").getValue()
                        : (impuestos.getAttribute("TotalImpuestosRetenidos") != null
                                ? impuestos.getAttribute("TotalImpuestosRetenidos").getValue()
                                : ""));
                layout.setTrasladados(impuestos.getAttribute("totalImpuestosTrasladados") != null
                        ? impuestos.getAttribute("totalImpuestosTrasladados").getValue()
                        : (impuestos.getAttribute("TotalImpuestosTrasladados") != null
                                ? impuestos.getAttribute("TotalImpuestosTrasladados").getValue()
                                : ""));
                Element retenciones = impuestos.getChild("Retenciones",
                        Namespace.getNamespace("cfdi", "http://www.sat.gob.mx/cfd/3"));
                if (retenciones != null) {
                    Element retencion = retenciones.getChild("Retencion",
                            Namespace.getNamespace("cfdi", "http://www.sat.gob.mx/cfd/3"));
                    layout.setImpuestoRetenido(retencion.getAttribute("impuesto") != null
                            ? retencion.getAttribute("impuesto").getValue()
                            : (retencion.getAttribute("Impuesto") != null
                                    ? retencion.getAttribute("Impuesto").getValue()
                                    : ""));
                    layout.setImporteRetenido(retencion.getAttribute("importe") != null
                            ? retencion.getAttribute("importe").getValue()
                            : (retencion.getAttribute("Importe") != null
                                    ? retencion.getAttribute("Importe").getValue()
                                    : ""));
                }
                Element trasladados = impuestos.getChild("Trasladados",
                        Namespace.getNamespace("cfdi", "http://www.sat.gob.mx/cfd/3"));
                if (trasladados != null) {
                    Element trasladado = trasladados.getChild("Trasladado",
                            Namespace.getNamespace("cfdi", "http://www.sat.gob.mx/cfd/3"));
                    layout.setImpuestoTrasladado(trasladado.getAttribute("impuesto") != null
                            ? trasladado.getAttribute("impuesto").getValue()
                            : (trasladado.getAttribute("Impuesto") != null
                                    ? trasladado.getAttribute("Impuesto").getValue()
                                    : ""));
                    layout.setImporteTrasladado(trasladado.getAttribute("importe") != null
                            ? trasladado.getAttribute("importe").getValue()
                            : (trasladado.getAttribute("Importe") != null
                                    ? trasladado.getAttribute("Importe").getValue()
                                    : ""));
                    layout.setTasaTrasladado(
                            trasladado.getAttribute("tasa") != null ? trasladado.getAttribute("tasa").getValue()
                                    : (trasladado.getAttribute("Tasa") != null
                                            ? trasladado.getAttribute("Tasa").getValue()
                                            : ""));
                }
            } else {
                layout.setRetenidos("");
                layout.setTrasladados("");
                layout.setImpuestoRetenido("");
                layout.setImporteRetenido("");
                layout.setImpuestoTrasladado("");
                layout.setImporteTrasladado("");
                layout.setTasaTrasladado("");
            }
            Element complemento = documento.getRootElement().getChild("Complemento",
                    Namespace.getNamespace("cfdi", "http://www.sat.gob.mx/cfd/3"));
            Element nomina = complemento.getChild("Nomina",
                    Namespace.getNamespace("nomina", "http://www.sat.gob.mx/nomina"));

            Element conceptos = documento.getRootElement().getChild("Conceptos",
                    Namespace.getNamespace("cfdi", "http://www.sat.gob.mx/cfd/3"));

            if (nomina != null) {
                Element concepto = conceptos.getChild("Concepto",
                        Namespace.getNamespace("cfdi", "http://www.sat.gob.mx/cfd/3"));
                if (concepto != null) {
                    layout.setImporte(concepto.getAttribute("importe") != null
                            ? concepto.getAttribute("importe").getValue()
                            : (concepto.getAttribute("Importe") != null
                                    ? concepto.getAttribute("Importe").getValue()
                                    : ""));
                    layout.setValorUnitario(concepto.getAttribute("valorUnitario") != null
                            ? concepto.getAttribute("valorUnitario").getValue()
                            : (concepto.getAttribute("ValorUnitario") != null
                                    ? concepto.getAttribute("ValorUnitario").getValue()
                                    : ""));
                    layout.setDescripcion(concepto.getAttribute("descripcion") != null
                            ? concepto.getAttribute("descripcion").getValue()
                            : (concepto.getAttribute("Descripcion") != null
                                    ? concepto.getAttribute("Descripcion").getValue()
                                    : ""));
                    layout.setUnidad(
                            concepto.getAttribute("unidad") != null ? concepto.getAttribute("unidad").getValue()
                                    : (concepto.getAttribute("Unidad") != null
                                            ? concepto.getAttribute("Unidad").getValue()
                                            : ""));
                    layout.setCantidad(concepto.getAttribute("cantidad") != null
                            ? concepto.getAttribute("cantidad").getValue()
                            : (concepto.getAttribute("Cantidad") != null
                                    ? concepto.getAttribute("Cantidad").getValue()
                                    : ""));
                }
                layout.setComprobanteTipo("NOMINA");
                layout.setPuesto(
                        nomina.getAttribute("Puesto") != null ? nomina.getAttribute("Puesto").getValue()
                                : (nomina.getAttribute("puesto") != null
                                        ? nomina.getAttribute("puesto").getValue()
                                        : ""));
                layout.setFechaInicioRelLaboral(nomina.getAttribute("FechaInicioRelLaboral") != null
                        ? nomina.getAttribute("FechaInicioRelLaboral").getValue()
                        : (nomina.getAttribute("fechaInicioRelLaboral") != null
                                ? nomina.getAttribute("fechaInicioRelLaboral").getValue()
                                : ""));
                layout.setClabe(nomina.getAttribute("CLABE") != null ? nomina.getAttribute("CLABE").getValue()
                        : (nomina.getAttribute("clabe") != null ? nomina.getAttribute("clabe").getValue()
                                : ""));
                layout.setBanco(nomina.getAttribute("Banco") != null ? nomina.getAttribute("Banco").getValue()
                        : (nomina.getAttribute("banco") != null ? nomina.getAttribute("banco").getValue()
                                : ""));
                layout.setTipoContrato(nomina.getAttribute("TipoContrato") != null
                        ? nomina.getAttribute("TipoContrato").getValue()
                        : (nomina.getAttribute("tipoContrato") != null
                                ? nomina.getAttribute("tipoContrato").getValue()
                                : ""));
                layout.setRiesgoPuesto(nomina.getAttribute("RiesgoPuesto") != null
                        ? nomina.getAttribute("RiesgoPuesto").getValue()
                        : (nomina.getAttribute("riesgoPuesto") != null
                                ? nomina.getAttribute("riesgoPuesto").getValue()
                                : ""));
                layout.setSalarioDiarioIntegrado(nomina.getAttribute("SalarioDiarioIntegrado") != null
                        ? nomina.getAttribute("SalarioDiarioIntegrado").getValue()
                        : (nomina.getAttribute("salarioDiarioIntegrado") != null
                                ? nomina.getAttribute("salarioDiarioIntegrado").getValue()
                                : ""));
                layout.setSalarioBaseCotApor(nomina.getAttribute("SalarioBaseCotApor") != null
                        ? nomina.getAttribute("SalarioBaseCotApor").getValue()
                        : (nomina.getAttribute("salarioBaseCotApor") != null
                                ? nomina.getAttribute("salarioBaseCotApor").getValue()
                                : ""));
                layout.setTipoJornada(nomina.getAttribute("TipoJornada") != null
                        ? nomina.getAttribute("TipoJornada").getValue()
                        : (nomina.getAttribute("tipoJornada") != null
                                ? nomina.getAttribute("tipoJornada").getValue()
                                : ""));
                layout.setPeriodicidadPago(nomina.getAttribute("PeriodicidadPago") != null
                        ? nomina.getAttribute("PeriodicidadPago").getValue()
                        : (nomina.getAttribute("periodicidadPago") != null
                                ? nomina.getAttribute("periodicidadPago").getValue()
                                : ""));
                layout.setCurp(nomina.getAttribute("CURP") != null ? nomina.getAttribute("CURP").getValue()
                        : (nomina.getAttribute("curp") != null ? nomina.getAttribute("curp").getValue() : ""));
                layout.setTipoRegimen(nomina.getAttribute("TipoRegimen") != null
                        ? nomina.getAttribute("TipoRegimen").getValue()
                        : (nomina.getAttribute("tipoRegimen") != null
                                ? nomina.getAttribute("tipoRegimen").getValue()
                                : ""));
                layout.setNumEmpleado(nomina.getAttribute("NumEmpleado") != null
                        ? nomina.getAttribute("NumEmpleado").getValue()
                        : (nomina.getAttribute("numEmpleado") != null
                                ? nomina.getAttribute("numEmpleado").getValue()
                                : ""));
                layout.setVersionN(
                        nomina.getAttribute("Version") != null ? nomina.getAttribute("Version").getValue()
                                : (nomina.getAttribute("version") != null
                                        ? nomina.getAttribute("version").getValue()
                                        : ""));
                layout.setRegistroPatronal(nomina.getAttribute("RegistroPatronal") != null
                        ? nomina.getAttribute("RegistroPatronal").getValue()
                        : (nomina.getAttribute("registroPatronal") != null
                                ? nomina.getAttribute("registroPatronal").getValue()
                                : ""));
                layout.setNss(nomina.getAttribute("NumSeguridadSocial") != null
                        ? nomina.getAttribute("NumSeguridadSocial").getValue()
                        : (nomina.getAttribute("numSeguridadSocial") != null
                                ? nomina.getAttribute("numSeguridadSocial").getValue()
                                : ""));
                layout.setNumDiasPagados(nomina.getAttribute("NumDiasPagados") != null
                        ? nomina.getAttribute("NumDiasPagados").getValue()
                        : (nomina.getAttribute("numDiasPagados") != null
                                ? nomina.getAttribute("numDiasPagados").getValue()
                                : ""));
                layout.setDepartamento(nomina.getAttribute("Departamento") != null
                        ? nomina.getAttribute("Departamento").getValue()
                        : (nomina.getAttribute("departamento") != null
                                ? nomina.getAttribute("departamento").getValue()
                                : ""));
                layout.setFechaFinalPago(nomina.getAttribute("FechaFinalPago") != null
                        ? nomina.getAttribute("FechaFinalPago").getValue()
                        : (nomina.getAttribute("fechaFinalPago") != null
                                ? nomina.getAttribute("fechaFinalPago").getValue()
                                : ""));
                layout.setFechaPago(
                        nomina.getAttribute("FechaPago") != null ? nomina.getAttribute("FechaPago").getValue()
                                : (nomina.getAttribute("fechaPago") != null
                                        ? nomina.getAttribute("fechaPago").getValue()
                                        : ""));
                layout.setFechaInicialPago(nomina.getAttribute("FechaInicialPago") != null
                        ? nomina.getAttribute("FechaInicialPago").getValue()
                        : (nomina.getAttribute("fechaInicialPago") != null
                                ? nomina.getAttribute("fechaInicialPago").getValue()
                                : ""));
                Element persepciones = nomina.getChild("Percepciones",
                        Namespace.getNamespace("nomina", "http://www.sat.gob.mx/nomina"));

                if (persepciones != null) {
                    layout.setTotalExentoP(persepciones.getAttribute("TotalExento") != null
                            ? persepciones.getAttribute("TotalExento").getValue()
                            : (persepciones.getAttribute("totalExento") != null
                                    ? persepciones.getAttribute("totalExento").getValue()
                                    : ""));
                    layout.setTotalGravadoP(persepciones.getAttribute("TotalGravado") != null
                            ? persepciones.getAttribute("TotalGravado").getValue()
                            : (persepciones.getAttribute("totalGravado") != null
                                    ? persepciones.getAttribute("totalGravado").getValue()
                                    : ""));
                    for (Element persepcion : persepciones.getChildren()) {
                        NominaDetalle nominaDetalle = new NominaDetalle();
                        nominaDetalle.setTipo(persepcion.getAttribute("TipoPercepcion") != null
                                ? persepcion.getAttribute("TipoPercepcion").getValue()
                                : (persepcion.getAttribute("tipoPercepcion") != null
                                        ? persepcion.getAttribute("tipoPercepcion").getValue()
                                        : ""));
                        nominaDetalle.setConcepto(persepcion.getAttribute("Concepto") != null
                                ? persepcion.getAttribute("Concepto").getValue()
                                : (persepcion.getAttribute("concepto") != null
                                        ? persepcion.getAttribute("concepto").getValue()
                                        : ""));
                        nominaDetalle.setClave(persepcion.getAttribute("Clave") != null
                                ? persepcion.getAttribute("Clave").getValue()
                                : (persepcion.getAttribute("clave") != null
                                        ? persepcion.getAttribute("clave").getValue()
                                        : ""));
                        nominaDetalle.setImporteGravado(persepcion.getAttribute("ImporteGravado") != null
                                ? persepcion.getAttribute("ImporteGravado").getValue()
                                : (persepcion.getAttribute("importeGravado") != null
                                        ? persepcion.getAttribute("importeGravado").getValue()
                                        : ""));
                        nominaDetalle.setImporteExento(persepcion.getAttribute("ImporteExento") != null
                                ? persepcion.getAttribute("ImporteExento").getValue()
                                : (persepcion.getAttribute("importeExento") != null
                                        ? persepcion.getAttribute("importeExento").getValue()
                                        : ""));
                        nominaDetalle.setTipoConcepto("1");
                        layout.addNominaDetalle(nominaDetalle);
                    }
                }
                Element deducciones = nomina.getChild("Deducciones",
                        Namespace.getNamespace("nomina", "http://www.sat.gob.mx/nomina"));
                if (deducciones != null) {
                    layout.setTotalExentoD(deducciones.getAttribute("TotalExento") != null
                            ? deducciones.getAttribute("TotalExento").getValue()
                            : (deducciones.getAttribute("totalExento") != null
                                    ? deducciones.getAttribute("totalExento").getValue()
                                    : ""));
                    layout.setTotalGravadoD(deducciones.getAttribute("TotalGravado") != null
                            ? deducciones.getAttribute("TotalGravado").getValue()
                            : (deducciones.getAttribute("totalGravado") != null
                                    ? deducciones.getAttribute("totalGravado").getValue()
                                    : ""));
                    for (Element deduccion : deducciones.getChildren()) {
                        NominaDetalle nominaDetalle = new NominaDetalle();
                        nominaDetalle.setTipo(deduccion.getAttribute("TipoDeduccion") != null
                                ? deduccion.getAttribute("TipoDeduccion").getValue()
                                : (deduccion.getAttribute("tipoDeduccion") != null
                                        ? deduccion.getAttribute("tipoDeduccion").getValue()
                                        : ""));
                        nominaDetalle.setConcepto(deduccion.getAttribute("Concepto") != null
                                ? deduccion.getAttribute("Concepto").getValue()
                                : (deduccion.getAttribute("concepto") != null
                                        ? deduccion.getAttribute("concepto").getValue()
                                        : ""));
                        nominaDetalle.setClave(deduccion.getAttribute("Clave") != null
                                ? deduccion.getAttribute("Clave").getValue()
                                : (deduccion.getAttribute("clave") != null
                                        ? deduccion.getAttribute("clave").getValue()
                                        : ""));
                        nominaDetalle.setImporteGravado(deduccion.getAttribute("ImporteGravado") != null
                                ? deduccion.getAttribute("ImporteGravado").getValue()
                                : (deduccion.getAttribute("importeGravado") != null
                                        ? deduccion.getAttribute("importeGravado").getValue()
                                        : ""));
                        nominaDetalle.setImporteExento(deduccion.getAttribute("ImporteExento") != null
                                ? deduccion.getAttribute("ImporteExento").getValue()
                                : (deduccion.getAttribute("importeExento") != null
                                        ? deduccion.getAttribute("importeExento").getValue()
                                        : ""));
                        nominaDetalle.setTipoConcepto("2");
                        layout.addNominaDetalle(nominaDetalle);
                    }
                }
            } else {
                layout.setComprobanteTipo("FACTURA");
                for (Element concepto : conceptos.getChildren()) {
                    IngresoDetalle ingresoDetalle = new IngresoDetalle();

                    ingresoDetalle.setImporte(concepto.getAttribute("importe") != null
                            ? concepto.getAttribute("importe").getValue()
                            : (concepto.getAttribute("importe") != null
                                    ? concepto.getAttribute("importe").getValue()
                                    : ""));
                    ingresoDetalle.setValorUnitario(concepto.getAttribute("valorUnitario") != null
                            ? concepto.getAttribute("valorUnitario").getValue()
                            : (concepto.getAttribute("valorUnitario") != null
                                    ? concepto.getAttribute("valorUnitario").getValue()
                                    : ""));
                    ingresoDetalle.setDescripcion(concepto.getAttribute("descripcion") != null
                            ? concepto.getAttribute("descripcion").getValue()
                            : (concepto.getAttribute("descripcion") != null
                                    ? concepto.getAttribute("descripcion").getValue()
                                    : ""));
                    ingresoDetalle.setUnidad(
                            concepto.getAttribute("unidad") != null ? concepto.getAttribute("unidad").getValue()
                                    : (concepto.getAttribute("unidad") != null
                                            ? concepto.getAttribute("unidad").getValue()
                                            : ""));
                    ingresoDetalle.setCantidad(concepto.getAttribute("cantidad") != null
                            ? concepto.getAttribute("cantidad").getValue()
                            : (concepto.getAttribute("cantidad") != null
                                    ? concepto.getAttribute("cantidad").getValue()
                                    : ""));
                    layout.addIngresoDetalle(ingresoDetalle);
                }
            }
            Element timbreFiscal = complemento.getChild("TimbreFiscalDigital",
                    Namespace.getNamespace("tfd", "http://www.sat.gob.mx/TimbreFiscalDigital"));
            if (timbreFiscal != null) {
                layout.setUuid(
                        timbreFiscal.getAttribute("UUID") != null ? timbreFiscal.getAttribute("UUID").getValue()
                                : (timbreFiscal.getAttribute("Uuid") != null
                                        ? timbreFiscal.getAttribute("Uuid").getValue()
                                        : ""));
                layout.setFechaTimbrado(timbreFiscal.getAttribute("FechaTimbrado") != null
                        ? timbreFiscal.getAttribute("FechaTimbrado").getValue()
                        : (timbreFiscal.getAttribute("fechaTimbrado") != null
                                ? timbreFiscal.getAttribute("fechaTimbrado").getValue()
                                : ""));
                layout.setSelloCfd(timbreFiscal.getAttribute("selloCFD") != null
                        ? timbreFiscal.getAttribute("selloCFD").getValue()
                        : (timbreFiscal.getAttribute("SelloCFD") != null
                                ? timbreFiscal.getAttribute("SelloCFD").getValue()
                                : ""));
                layout.setNoCertificadoSat(timbreFiscal.getAttribute("noCertificadoSAT") != null
                        ? timbreFiscal.getAttribute("noCertificadoSAT").getValue()
                        : (timbreFiscal.getAttribute("NoCertificadoSAT") != null
                                ? timbreFiscal.getAttribute("NoCertificadoSAT").getValue()
                                : ""));
                layout.setSelloSat(timbreFiscal.getAttribute("selloSAT") != null
                        ? timbreFiscal.getAttribute("selloSAT").getValue()
                        : (timbreFiscal.getAttribute("SelloSAT") != null
                                ? timbreFiscal.getAttribute("SelloSAT").getValue()
                                : ""));
            }

            layout.setCadenaOriginal(
                    "||" + layout.getVersion() + "|" + layout.getUuid() + "|" + layout.getFechaTimbrado() + "|"
                            + layout.getSelloCfd() + "|" + layout.getNoCertificadoSat() + "||");
        } catch (JDOMException e) {
            logger.log(Level.SEVERE, "{0}: {1}", new Object[] { nombreArchivo, e.getMessage() });
            layout = null;
        }
    } catch (IOException e) {
        logger.log(Level.SEVERE, "{0}: {1}", new Object[] { nombreArchivo, e.getMessage() });
        layout = null;
    } catch (Exception ex) {
        logger.log(Level.SEVERE, "{0}: {1}", new Object[] { nombreArchivo, ex.getMessage() });
        layout = null;
    }
    if (showLog)
        logger.log(Level.INFO, "Fin parse ");
    return layout;
}

From source file:ch.rotscher.maven.plugins.InstallWithVersionOverrideMojo.java

License:Apache License

private Element findVersionElement(Document doc) {
    for (Element element : doc.getRootElement().getChildren()) {
        if (element.getName().equals("version")) {
            return element;
        }/*from   ww w  .j  a v a 2  s  .  c  o  m*/
    }

    for (Element element : doc.getRootElement().getChildren()) {
        if (element.getName().equals("parent")) {
            for (Element childElem : element.getChildren()) {
                if (childElem.getName().equals("version")) {
                    return childElem;
                }
            }
        }
    }
    return null;
}