private void construirePlanAPartirDeDOMXML(Element elemReseau,ArrayList<Noeud> listeARetourner )throws XmlParserException
	{
		try
		{

			NodeList listeDeNoeudsXML= elemReseau.getChildNodes();
			Node noeudXML= null;
			ArrayList<Element> listeDesNoeud= listeDesNoeudsFils(elemReseau, "Noeud");

			boolean premierTourBoucle = true;
			for (Element e: listeDesNoeud)
			{
				int id = Integer.parseInt(e.getAttribute("id"));
				int abs = Integer.parseInt(e.getAttribute("x"));
				int ord = Integer.parseInt(e.getAttribute("y"));

				Noeud noeudAajouter=new Noeud(id,abs,ord);

				if (!premierTourBoucle)
				{
					verifDoublonId(listeARetourner, null, id);
					verifDoublonCooordonnees(listeARetourner,noeudAajouter);
				}
				{
					premierTourBoucle=false;
				}
				listeARetourner.add(id,noeudAajouter);
			}

			//Deuxi???me boucle qui ajoute les troncons sortants des noeuds
			for (int j=0;j<listeDeNoeudsXML.getLength();j++)
			{
				noeudXML= listeDeNoeudsXML.item(j);
				if (noeudXML.getNodeName().equals("Noeud") && (noeudXML.getNodeType()== Node.ELEMENT_NODE))
				{

					Element elemNoeudXML = (Element)noeudXML;
					ArrayList<Element> listeTroncon= listeDesNoeudsFils(elemNoeudXML, "TronconSortant");

					int idNoeudSource=Integer.parseInt(elemNoeudXML.getAttribute("id"));

					Noeud noeudSource= listeARetourner.get(idNoeudSource);

					for (Element troncon:listeTroncon )
					{

						int destination =Integer.parseInt(troncon.getAttribute("destination"));
						Float vitesse= Float.parseFloat(troncon.getAttribute("vitesse"));
						Float longueur= Float.parseFloat(troncon.getAttribute("longueur"));
						String nomRue= troncon.getAttribute("nomRue");

						//On recup???re le noeud correspondant ??? la destination
						Noeud noeudDestination=listeARetourner.get(destination);

						Troncon tr= new Troncon(nomRue,vitesse,longueur,noeudDestination);

						noeudSource.ajouterTroncons_sortants(tr);

					}

				}
			}

		}
		catch (Exception e)
		{
			throw new XmlParserException(e.getMessage(),e);
		}
	}