Bonjour à tous,

Je me lance dans l'utilisation de fichier xml avec Java.
J'aurai aimé avoir vos impressions, avis et critiques :
1. sur ma structure XML, et de deux
2. sur la façon de traiter mon XML

L'idée est de mettre dans le XML le nom de fichiers, ainsi que le nom des répertoires dans lesquels ils devront être rangés.
Voici ma structure XML :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="UTF-8"?> 
<majs>
	<maj name="Custom View">
		<fichier> 
			File 1
		</fichier>
		<fichier> 
			File 2
		</fichier>
		<repertoire>		
			Folder 1
		</repertoire>
		<repertoire>
			Folder 2
		</repertoire>
	</maj>
</majs>
Ensuite, j'arrive sans problème à lire mon fichier xml, à récupérer l'attribut name, et à récupérer un seul fichier et un seul repertoire.
Je me suis dit que cela pourrait être pas mal de ranger les noms de fichiers, et de repertoire dans un tableau, puis de faire ensuite la corrélation entre les deux --> TabFichier[0] doit être rangé dans TabRepertoire[0] ...

Voici mon bout de code actuel :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
static String path = "C:\\";
 
    public static void main(String[] args) 
    {
        String fich = "";
        String rep = "";
 
        try
        {
            File fichier = new File("C:\\Users\\Me\\Desktop\\maj.xml");
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
            Document document = dBuilder.parse(fichier);
            document.getDocumentElement().normalize();
 
            System.out.println("racine du fichier xml ===> " + document.getDocumentElement().getNodeName());
            NodeList nodes = document.getElementsByTagName("maj");
 
            String att = nodes.item(0).getAttributes().getNamedItem("name").toString();
            att = att.substring(6, att.length()-1);
 System.out.println("Nom de la mise à jour = " + att); 
            for (int i=0; i< nodes.getLength(); i++)
            {
                Node node = nodes.item(i);
 
                if (node.getNodeType() == node.ELEMENT_NODE)
                {
                    Element element = (Element) node;     
 
                    fich = getValue("fichier", element).trim();                
                    System.out.println("Fichier = " + fich);  
 
                    rep = getValue("repertoire", element).trim();
                    System.out.println("Repertoire = " + rep);              
                }
            }
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
 
    private static String getValue(String tag, Element element)
    {
        NodeList nodes = element.getElementsByTagName(tag).item(0).getChildNodes();
        Node node = (Node) nodes.item(0);
        return node.getNodeValue();                
    }
Qu'en pensez-vous ?
Comment dois-je m'y prendre pour pouvoir récupérer les deux valeurs des fichiers et répertoires et pouvoir les ranger dans les tableaux correspondants ?

Merci d'avance !