Bonjour à tous,

J'ai une applet java qui reçoit du texte en xml pour l'afficher dans un JTextPane.

Pour parser mon XML j'utilise l'API DOM

Voici un exemple de xml reçu par l'applet :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><TEXTE><TI><P>Des espaces verts pour une espérance de vie accrue</P><P>De nouvelles recherches montrent que les gens vivant à proximité des espaces verts vivent plus longtemps</P></TI><TX><P>Des espaces verts</P></TX></TEXTE>
Le xml que je reçois, je le stocke dans une String que je stocke dans un InputStream pour le donner ensuite au parser DOM.

Voici le code :
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
 
public ParserArticleXML(String contenu)
{
     InputStream input = new ByteArrayInputStream(contenu.getBytes("UTF-8"));
 
     // on ajoute la propriété xml à la JVM
     System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
 
   // on crée une fabrique de document xml
   DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance();
 
  // A partir de notre fabrique, on recupere un constructeur DOM
  DocumentBuilder constructeur = fabrique.newDocumentBuilder();
 
  // on parse le fichier xml et on recupere le document xml
  Document doc = constructeur.parse(input);
 
  // on commence l'analyse du document
  if(doc.hasChildNodes())
  {
	nodePrincipal = doc.getFirstChild();
	if(nodePrincipal.getNodeName().equalsIgnoreCase("TEXTE") && nodePrincipal.hasChildNodes() == true)
       {
		childList = nodePrincipal.getChildNodes();
		for(i=0; i<childList.getLength(); i++) 
		{
			childNode = childList.item(i);
			nodeName = childNode.getNodeName();
			nodeTextContent = childNode.getTextContent();
			// on remplit des ArrayLists pour le moment
                        tableauBalise.add(nodeName);
			tableauContenu.add(nodeTextContent);
		}
	}
   }
}
Actuellement pour definir un paragraphe et donc un retour chariot j'utilise les <P></P>. le probleme est lors de la récupération des balises je recupere bien les balises TI et TX mais pas les balises P.

J'ai peut etre fait une erreur dans le parsage, donc si vous avez des idées.

Merci beaucoup.

Ludovic