Bonjour tout le monde!!
Voilà le topo :
J'ai un document word que j'enregistre en xml word 2003, avec l'arborescence suivante :"WordCout./COUT_MODELE.xml
Ce que je veux faire, c'est trouver le code correspondant à une ligne de mon document word sachant que cette ligne doit contenir une certaine balise.
Je ne peux pas me contenter de remplacer la balise par sa valeur, car en fait la balise doit être remplacée par une liste de string, et donc j'ai besoin du code qui permet de creer toute une ligne.
bref je cherche un truc du genre qui commence par <w:p wsp qui fini par </w:p> et qui contient ma balise.
J'ai donc fait une méthode qui me lit mon xml et qui m'en fait un String, puis je cherche dans mon string.
voici ma méthode:
gLigne désigne tout le string dans lequel je n'ai pas encore cherché, ligne désigne le string dans lequel je cherche.
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 public static String trouverLigneAvec(String fichier,String element){ String st = ""; try { BufferedReader br= new BufferedReader(new FileReader(fichier)); while(br.ready()) { st+=br.readLine(); } br.close(); } catch (IOException e) { e.printStackTrace(); } String gLigne = st.substring(st.indexOf("<w:p wsp"),st.length()); String ligne = gLigne.substring(0, gLigne.indexOf("</w:p>")+6); while(!ligne.contains(element)){ gLigne = gLigne.replaceAll(ligne,""); ligne = gLigne.substring(0,gLigne.indexOf("</w:p>")+6); } return ligne; }
Au fur et à mesure que j'avance dans ma recherche je raccourci gLigne.
Le pb c'est que cette méthode ne marche pas toujours, notamment quand je fais :
ligneTASSEAUX_MP = trouverLigneAvec("WordCout./COUT_MODELE.xml","BaliseM");
il reste bloqué dans la boucle while.
Si vous avez une idée, merci bcp.
Partager