public LinkedHashMap<Integer, Compra> cargarCompraDOM(String rutaFichero) {
        rutaFichero = rutaFichero + ".xml";
        LinkedHashMap<Integer, Compra> compras = new LinkedHashMap<>();

        try {
            File xmlFile = new File(rutaFichero);
            DocumentBuilderFactory documentFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder documentBuilder = documentFactory.newDocumentBuilder();
            Document doc = documentBuilder.parse(xmlFile);
            doc.getDocumentElement().normalize();
            //mira cuantos nodos compra hay, devuelve una lista
            NodeList NodosCompra = doc.getElementsByTagName("compra");
            for (int i = 0; i < NodosCompra.getLength(); i++) {
                //devuelve el elemento (nodo) que se encuentre en la posición especificada de la lista
                //creo un nodo con el elemento que toque
                Node node = NodosCompra.item(i);
                //de todos los elementos selecciona los que sean nodos (podrían ser texto...)
                if (node.getNodeType() == Node.ELEMENT_NODE) {
                    //casteo el nodo a tipo element
                    Compra c;
                    Element NCompra = (Element) node;
                    String idtexto = NCompra.getAttribute("id");
                    Integer id = Integer.parseInt(idtexto);
                    String cantidadTexto = NCompra.getElementsByTagName("cantidad").item(0).getTextContent();
                    Integer cantidad = Integer.parseInt(cantidadTexto);
                    String concepto = NCompra.getElementsByTagName("concepto").item(0).getTextContent();
                    c = new Compra(id, cantidad, concepto);
                    compras.put(c.getId(), c);
                }
            }

        } catch (ParserConfigurationException | SAXException | IOException ex) {
            Logger.getLogger(FicherosDatos.class.getName()).log(Level.SEVERE, null, ex);
        }
        return compras;
    }