public static List<PlageHoraire> lireLivraison(String fichierEntree, ZoneGeographique zone) throws ParseurException{
        List<PlageHoraire> plageList = new ArrayList<PlageHoraire>();
        SAXBuilder builder = new SAXBuilder();
        FileInputStream inputStream;
        try {
            inputStream = new FileInputStream(fichierEntree);            
            Document document = builder.build(inputStream);
            Element journee = document.getRootElement();

            // L'identifiant de l'entrepôt permet de savoir quel nœud est l'entrepôt
            zone.setEntrepot(Integer.parseInt(journee.getChild("Entrepot").getAttributeValue("adresse")));

            // Liste des plages représentées dans le document XML
            @SuppressWarnings("unchecked")
            List<Element> plages = journee.getChild("PlagesHoraires").getChildren("Plage");
            for (Element plage : plages) {
                PlageHoraire plageHoraire = new PlageHoraire(plage.getAttributeValue("heureDebut"),
                		plage.getAttributeValue("heureFin"));
                List<Livraison> livraisonList = new ArrayList<Livraison>();

                @SuppressWarnings("unchecked")
                List<Element> livraisons = plage.getChild("Livraisons").getChildren("Livraison");
                for (Element livraison : livraisons) {
                	int idNoeud = Integer.parseInt(livraison.getAttributeValue("adresse"));
                	int idLiv = Integer.parseInt(livraison.getAttributeValue("id"));
                	int idClient = Integer.parseInt(livraison.getAttributeValue("client"));

                	Livraison l = new Livraison(zone.getNoeudById(idNoeud),idLiv, idClient,plageHoraire);
                	livraisonList.add(l);
                	zone.modifierNoeudEnLivraison(idNoeud, l);
                }
                plageHoraire.setLivraisons(livraisonList);
                plageList.add(plageHoraire);
            }
        } catch (FileNotFoundException fnfe) {
            throw new ParseurException("Fichier inexistant");
        } catch (IOException io) {
            throw new ParseurException("Impossible d'accéder au fichier correctement");
        } catch (JDOMException jdomex) {
            throw new ParseurException("Ficher XML mal formé: mauvaise syntaxe XML");
        } catch (NullPointerException nullptrex) {
            throw new ParseurException("Ficher XML mal formé: element ou attribut manquant");
        } catch (IndexOutOfBoundsException ioobe) {
            throw new ParseurException("Fichier XML erroné: valeurs de certains attributs inexistants");
        } catch (NumberFormatException nfe) {
            throw new ParseurException("Données du fichier XML non conformes");
        }

        return plageList;
    }