Problème algo récursif de parsage xml JAVA
Virusatyr
-
Virusatyr -
Virusatyr -
Bonsoir,
Je souhaite parcourir le XML d'une arborescence de fichier de manière récursive (car un fichier peut en contenir un autre) et me créer une hasmap en java pour regrouper tout ca.
Le fichier XML est de ce type :
Mon algo est fait en java avec la biblioteque nanoXML, il est le suivant :
L'algo marche bien pour certains XML (dossiers imbriqués mais avec un seul dossier à l'intérieur) mais pour celui donné en exemple ça dérape... J'obtiens une hashmap de ce type :
En espérant que vous trouviez où mon algo déconne...
Merci d'avance
Bastien.
Je souhaite parcourir le XML d'une arborescence de fichier de manière récursive (car un fichier peut en contenir un autre) et me créer une hasmap en java pour regrouper tout ca.
Le fichier XML est de ce type :
<dossier> <nom>racine</nom> <contenu> <fichier>test.txt</fichier> <dossier> <nom>doc_1</nom> <contenu> <dossier> <nom>sous doc 1</nom> <contenu> <dossier> <nom>sous doc 1.1</nom> <contenu></contenu> </dossier> <fichier>1.1.txt</fichier> </contenu> </dossier> </contenu> </dossier> <dossier> <nom>doc_2</nom> <contenu></contenu> </dossier> <dossier> <nom>doc_3</nom> <contenu></contenu> </dossier> </contenu> </dossier>
Mon algo est fait en java avec la biblioteque nanoXML, il est le suivant :
public static String recurTest(IXMLElement element, HashMap<String, HashMap> map) { Enumeration child = element.enumerateChildren(); String nomFic = ""; while(child.hasMoreElements()) { IXMLElement itemChild = (IXMLElement)(child.nextElement()); if(itemChild.getName().equals("nom")) nomFic = itemChild.getContent(); else { Enumeration contenu = itemChild.enumerateChildren(); HashMap<String, HashMap> map2 = new HashMap<String, HashMap>(); while(contenu.hasMoreElements()) { IXMLElement itemContenu = (IXMLElement)(contenu.nextElement()); if(itemContenu.getName().equals("fichier")) map.put(itemContenu.getContent(), null); else map.put(recurTest(itemContenu, map2), map2); } } } return nomFic; }
L'algo marche bien pour certains XML (dossiers imbriqués mais avec un seul dossier à l'intérieur) mais pour celui donné en exemple ça dérape... J'obtiens une hashmap de ce type :
{3={1.1={1.1.1={}, 1.1.txt=null}}, 2={1.1={1.1.1={}, 1.1.txt=null}}, 1={1.1={1.1.1={}, 1.1.txt=null}}, test.txt=null}
En espérant que vous trouviez où mon algo déconne...
Merci d'avance
Bastien.
A voir également:
- Problème algo récursif de parsage xml JAVA
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Xml download - Télécharger - Édition & Programmation
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages