bonjour, je parse un fichier xml de cette structure:
avec cette methode:Code:
1
2
3
4
5
6
7
8
9 <PatentClassInfo> <Patentid>7,351,541</Patentid> <Classid>G01N 33/53(20060101)</Classid> <Classinfo>Measuring length, thickness, or similar linear dimensions;Measuring angles;Measuring areas;Measuring irregularities of surfaces or contours</Classinfo> <Patentid>...</Patentid> <Classid>...</Classid> <Classinfo>....</Classinfo> .... </PatentClassInfo>
dans laquelle je cherche le classid correpondand à un label donné comme paramètre et je veux récupérer la classinfo que de ce label mais le résultat de la ligne:System.out.println(courant.getText()); est le contenu de tous les balises <Classinfo> à part celle que j'ai besoin.Code:
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 public void ClassInfo(String label){ org.jdom.Document document; Element racine; String pathconceptclass="Z:\\concept\\conceptclass.xml"; String id; Boolean trouv=false; Boolean trouv2=false; SAXBuilder sxb = new SAXBuilder(); try { document = sxb.build(new File(pathconceptclass)); racine=document.getRootElement(); List listDoc =racine.getChildren(); Iterator i = listDoc.iterator(); while ( (i.hasNext()) && (trouv2==false)) { Element courant = (Element)i.next(); if (courant.getName().equals("Classid")){ id=courant.getText(); System.out.println("Classid"); StringTokenizer lab =new StringTokenizer(id," "); id=lab.nextToken(); System.out.println(id); if (id.equals(label)){ trouv=true; }} else { if ((courant.getName().equals("Classinfo")) && (trouv==true)){ trouv2=true; trouv=false; System.out.println(courant.getText()); }}} } catch(Exception e){System.out.println(" we've got a problem"); e.printStackTrace ();} }