Bonjour.
J'ai un parser SAX dans un logiciel, que je viens de coupler avec un autre logiciel. (Histoire complète de cet accouplement ici.)
Mon parser SAX prenait en paramètre un String (représentation de mon XML) et faisait ensuite son petit travail.
Aujourd'hui, depuis le nouveau logiciel que je lui ai rattaché, je lui envoie non plus un String à parsé, mais un Document (issu de JDOM...).
J'ai un peu de mal à trouver une méthode dans SAX qui prenne comme paramètre un Document pour le parser...
Voici le code que j'utilise actuellement :
Je trouve un petit peu dommage de passer par la version String du Document avant de le lancer au parser.
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 public void readXML(Document doc) throws ProtocolException, IOException { inTree = false; inDeclarations = false; try { SAXParserFactory p = SAXParserFactory.newInstance(); p.setValidating(false); SAXParser parser = p.newSAXParser(); XMLReader reader = parser.getXMLReader(); reader.setContentHandler(this); XMLOutputter xmlOut=new XMLOutputter(); ByteArrayInputStream xmlByteArrayInputStream = new ByteArrayInputStream(xmlOut.outputString(doc).getBytes("UTF-8")); InputSource xmlInputSource = new InputSource(xmlByteArrayInputStream); reader.parse(xmlInputSource); // here the stream is parsed.
Pourriez vous m'aider à améliorer ça ?
Par avance, Merci
Partager