J'utilise actuellement un parser SAX pour lire un fichier XML.
Existerait-il un moyen de le stopper (lors de la rencontre d'une fin de
balise précise, par exemple) et donc l'empêcher de parcourir tout le
document (qui est assez gros) ?
C'est aussi parce que je n'ai besoin que d'en récupérer une sous-partie.
J'utilise actuellement un parser SAX pour lire un fichier XML. Existerait-il un moyen de le stopper (lors de la rencontre d'une fin de balise précise, par exemple) et donc l'empêcher de parcourir tout le document (qui est assez gros) ? C'est aussi parce que je n'ai besoin que d'en récupérer une sous-partie.
Merci d'avance pour vos réponses.
dans la mesure où sax parse séquentiellement, ligne par ligne, est-ce qu'un compteur de ligne ne suffirait pas ? où mieux, mettre une balise en condition d'arrêt ?
Bonjour,
J'utilise actuellement un parser SAX pour lire un fichier XML.
Existerait-il un moyen de le stopper (lors de la rencontre d'une fin de
balise précise, par exemple) et donc l'empêcher de parcourir tout le
document (qui est assez gros) ?
C'est aussi parce que je n'ai besoin que d'en récupérer une sous-partie.
Merci d'avance pour vos réponses.
dans la mesure où sax parse séquentiellement, ligne par ligne, est-ce
qu'un compteur de ligne ne suffirait pas ?
où mieux, mettre une balise en condition d'arrêt ?
J'utilise actuellement un parser SAX pour lire un fichier XML. Existerait-il un moyen de le stopper (lors de la rencontre d'une fin de balise précise, par exemple) et donc l'empêcher de parcourir tout le document (qui est assez gros) ? C'est aussi parce que je n'ai besoin que d'en récupérer une sous-partie.
Merci d'avance pour vos réponses.
dans la mesure où sax parse séquentiellement, ligne par ligne, est-ce qu'un compteur de ligne ne suffirait pas ? où mieux, mettre une balise en condition d'arrêt ?
SK
dans la mesure où sax parse séquentiellement, ligne par ligne, est-ce qu'un compteur de ligne ne suffirait pas ? où mieux, mettre une balise en condition d'arrêt ?
Malheureusement, le nombre de ligne n'est pas connu à l'avance. Sinon je veux bien donner une sémantique d'arrêt à un certain type de balise mais comment dire au parser SAX de s'arrêter dès qu'elle rencontre cette balise justement ?
dans la mesure où sax parse séquentiellement, ligne par ligne, est-ce
qu'un compteur de ligne ne suffirait pas ?
où mieux, mettre une balise en condition d'arrêt ?
Malheureusement, le nombre de ligne n'est pas connu à l'avance.
Sinon je veux bien donner une sémantique d'arrêt à un certain type de
balise mais comment dire au parser SAX de s'arrêter dès qu'elle
rencontre cette balise justement ?
dans la mesure où sax parse séquentiellement, ligne par ligne, est-ce qu'un compteur de ligne ne suffirait pas ? où mieux, mettre une balise en condition d'arrêt ?
Malheureusement, le nombre de ligne n'est pas connu à l'avance. Sinon je veux bien donner une sémantique d'arrêt à un certain type de balise mais comment dire au parser SAX de s'arrêter dès qu'elle rencontre cette balise justement ?
ali k
dans la mesure où sax parse séquentiellement, ligne par ligne, est-ce qu'un compteur de ligne ne suffirait pas ? où mieux, mettre une balise en condition d'arrêt ?
Malheureusement, le nombre de ligne n'est pas connu à l'avance. Sinon je veux bien donner une sémantique d'arrêt à un certain type de balise mais comment dire au parser SAX de s'arrêter dès qu'elle rencontre cette balise justement ? Quel parser utilises-tu ?
dans la mesure où sax parse séquentiellement, ligne par ligne, est-ce
qu'un compteur de ligne ne suffirait pas ?
où mieux, mettre une balise en condition d'arrêt ?
Malheureusement, le nombre de ligne n'est pas connu à l'avance.
Sinon je veux bien donner une sémantique d'arrêt à un certain type de
balise mais comment dire au parser SAX de s'arrêter dès qu'elle
rencontre cette balise justement ?
Quel parser utilises-tu ?
dans la mesure où sax parse séquentiellement, ligne par ligne, est-ce qu'un compteur de ligne ne suffirait pas ? où mieux, mettre une balise en condition d'arrêt ?
Malheureusement, le nombre de ligne n'est pas connu à l'avance. Sinon je veux bien donner une sémantique d'arrêt à un certain type de balise mais comment dire au parser SAX de s'arrêter dès qu'elle rencontre cette balise justement ? Quel parser utilises-tu ?
SK
ali k wrote:
Quel parser utilises-tu ?
J'utilise parser par défaut de Java : org.apache.crimson. Enfin, vu que je souhaite un code portable, je préfère ne pas trop m'appuyer sur des features non standards.
ali k wrote:
Quel parser utilises-tu ?
J'utilise parser par défaut de Java : org.apache.crimson.
Enfin, vu que je souhaite un code portable, je préfère ne pas trop
m'appuyer sur des features non standards.
J'utilise parser par défaut de Java : org.apache.crimson. Enfin, vu que je souhaite un code portable, je préfère ne pas trop m'appuyer sur des features non standards.
Unknown
Le Wed, 26 May 2004 20:53:57 +0200, SK a écrit :
ali k wrote:
Quel parser utilises-tu ?
J'utilise parser par défaut de Java : org.apache.crimson.
lol, apache c'est le parser par défaut de java maintenant. sinon utilise JDOM (www.jdom.org) c'est tres simple a utiliser. Pour obtenir tes composants tu fais du rootElement.getChildren("NOMDUTAG"); ou rootElement.getCHild("nombis");
Enfin, vu que je souhaite un code portable, je préfère ne pas trop m'appuyer sur des features non standards.
ben jdom tu livres le jar et ca roule
Le Wed, 26 May 2004 20:53:57 +0200, SK a écrit :
ali k wrote:
Quel parser utilises-tu ?
J'utilise parser par défaut de Java : org.apache.crimson.
lol, apache c'est le parser par défaut de java maintenant.
sinon utilise JDOM (www.jdom.org) c'est tres simple a utiliser.
Pour obtenir tes composants tu fais du
rootElement.getChildren("NOMDUTAG"); ou rootElement.getCHild("nombis");
Enfin, vu que je souhaite un code portable, je préfère ne pas trop
m'appuyer sur des features non standards.
J'utilise parser par défaut de Java : org.apache.crimson.
lol, apache c'est le parser par défaut de java maintenant. sinon utilise JDOM (www.jdom.org) c'est tres simple a utiliser. Pour obtenir tes composants tu fais du rootElement.getChildren("NOMDUTAG"); ou rootElement.getCHild("nombis");
Enfin, vu que je souhaite un code portable, je préfère ne pas trop m'appuyer sur des features non standards.
ben jdom tu livres le jar et ca roule
SK
Unknown wrote:
lol, apache c'est le parser par défaut de java maintenant. sinon utilise JDOM (www.jdom.org) c'est tres simple a utiliser. Pour obtenir tes composants tu fais du rootElement.getChildren("NOMDUTAG"); ou rootElement.getCHild("nombis");
Enfin, vu que je souhaite un code portable, je préfère ne pas trop m'appuyer sur des features non standards.
ben jdom tu livres le jar et ca roule
Tu aurais peut-être du lire le message d'origine avant de poster ta réponse. Sache que je travaille en SAX et que le parser fourni avec le SDK Java de Sun est bien le Crimson d'Apache (dont le parseur Xerces est bien connu). Je sais très bien utiliser DOM, merci, mais pour rappeler mon problème je cherche à arrêter le parser SAX après la rencontre d'une certaine balise pour éviter de lui faire parcourir tout le fichier.
Merci d'avance pour quiconque aurait un élément réponse.
Unknown wrote:
lol, apache c'est le parser par défaut de java maintenant.
sinon utilise JDOM (www.jdom.org) c'est tres simple a utiliser.
Pour obtenir tes composants tu fais du
rootElement.getChildren("NOMDUTAG"); ou rootElement.getCHild("nombis");
Enfin, vu que je souhaite un code portable, je préfère ne pas trop
m'appuyer sur des features non standards.
ben jdom tu livres le jar et ca roule
Tu aurais peut-être du lire le message d'origine avant de poster ta
réponse. Sache que je travaille en SAX et que le parser fourni avec le
SDK Java de Sun est bien le Crimson d'Apache (dont le parseur Xerces est
bien connu). Je sais très bien utiliser DOM, merci, mais pour rappeler
mon problème je cherche à arrêter le parser SAX après la rencontre d'une
certaine balise pour éviter de lui faire parcourir tout le fichier.
Merci d'avance pour quiconque aurait un élément réponse.
lol, apache c'est le parser par défaut de java maintenant. sinon utilise JDOM (www.jdom.org) c'est tres simple a utiliser. Pour obtenir tes composants tu fais du rootElement.getChildren("NOMDUTAG"); ou rootElement.getCHild("nombis");
Enfin, vu que je souhaite un code portable, je préfère ne pas trop m'appuyer sur des features non standards.
ben jdom tu livres le jar et ca roule
Tu aurais peut-être du lire le message d'origine avant de poster ta réponse. Sache que je travaille en SAX et que le parser fourni avec le SDK Java de Sun est bien le Crimson d'Apache (dont le parseur Xerces est bien connu). Je sais très bien utiliser DOM, merci, mais pour rappeler mon problème je cherche à arrêter le parser SAX après la rencontre d'une certaine balise pour éviter de lui faire parcourir tout le fichier.
Merci d'avance pour quiconque aurait un élément réponse.
ali k
ali k wrote:
Quel parser utilises-tu ?
J'utilise parser par défaut de Java : org.apache.crimson. Enfin, vu que je souhaite un code portable, je préfère ne pas trop m'appuyer sur des features non standards. Quel est le problème vu qu'à la fin c'est du bytecode que tu obtiens ?
Une fois compilé, il sera de toute façon portable puisque destiné à tourner sur une JVM (à moins que la JVM ne soit pas à jour).
J'opterai pour la création d'un fichier temporaire s'arrêtant à la ligne désirée pour ensuite parser ce fichier temporaire : grossierement si tu veux t'arreter à la balise </fin> du fichier "exemple.xml". (A vérifier)
File tmpfile = File.createTempFile("xxx","tmp"); BufferedReader br new BufferedReader(newputStreamReader("exemple.xml")); PrintWriter pw = new PrintWriter(new FileOutputStream(tmpfile)); String ligne = null; while (!(ligne = br.readLine()).startsWith("</fin>") pw.println(ligne); pw.println(ligne); //on ajoute la balise </fin> pw.close(); br.close(); XMLReader reader XMLReaderFactory.createXMLReader(); InputSource is = new InputSource(tmpfile); reader.parse(is);
Attention, contrairement à ce que raconte notre ami inconnu, jdom n'est pas plus facile ni mieux que sax. Le dom est une toute autre approche du parsing xml. Le choix du sax ou du dom dépend avant tout des besoins (mémoire, rapidité ...)
ali k wrote:
Quel parser utilises-tu ?
J'utilise parser par défaut de Java : org.apache.crimson.
Enfin, vu que je souhaite un code portable, je préfère ne pas trop
m'appuyer sur des features non standards.
Quel est le problème vu qu'à la fin c'est du bytecode que tu obtiens ?
Une fois compilé, il sera de toute façon portable puisque destiné à
tourner sur une JVM (à moins que la JVM ne soit pas à jour).
J'opterai pour la création d'un fichier temporaire s'arrêtant à la ligne
désirée pour ensuite parser ce fichier temporaire :
grossierement si tu veux t'arreter à la balise </fin> du fichier
"exemple.xml". (A vérifier)
File tmpfile = File.createTempFile("xxx","tmp");
BufferedReader br new BufferedReader(newputStreamReader("exemple.xml"));
PrintWriter pw = new PrintWriter(new FileOutputStream(tmpfile));
String ligne = null;
while (!(ligne = br.readLine()).startsWith("</fin>")
pw.println(ligne);
pw.println(ligne); //on ajoute la balise </fin>
pw.close();
br.close();
XMLReader reader XMLReaderFactory.createXMLReader();
InputSource is = new InputSource(tmpfile);
reader.parse(is);
Attention, contrairement à ce que raconte notre ami inconnu, jdom n'est
pas plus facile ni mieux que sax. Le dom est une toute autre approche du
parsing xml. Le choix du sax ou du dom dépend avant tout des besoins
(mémoire, rapidité ...)
J'utilise parser par défaut de Java : org.apache.crimson. Enfin, vu que je souhaite un code portable, je préfère ne pas trop m'appuyer sur des features non standards. Quel est le problème vu qu'à la fin c'est du bytecode que tu obtiens ?
Une fois compilé, il sera de toute façon portable puisque destiné à tourner sur une JVM (à moins que la JVM ne soit pas à jour).
J'opterai pour la création d'un fichier temporaire s'arrêtant à la ligne désirée pour ensuite parser ce fichier temporaire : grossierement si tu veux t'arreter à la balise </fin> du fichier "exemple.xml". (A vérifier)
File tmpfile = File.createTempFile("xxx","tmp"); BufferedReader br new BufferedReader(newputStreamReader("exemple.xml")); PrintWriter pw = new PrintWriter(new FileOutputStream(tmpfile)); String ligne = null; while (!(ligne = br.readLine()).startsWith("</fin>") pw.println(ligne); pw.println(ligne); //on ajoute la balise </fin> pw.close(); br.close(); XMLReader reader XMLReaderFactory.createXMLReader(); InputSource is = new InputSource(tmpfile); reader.parse(is);
Attention, contrairement à ce que raconte notre ami inconnu, jdom n'est pas plus facile ni mieux que sax. Le dom est une toute autre approche du parsing xml. Le choix du sax ou du dom dépend avant tout des besoins (mémoire, rapidité ...)
Marc Petit-Huguenin
SK wrote:
Bonjour,
J'utilise actuellement un parser SAX pour lire un fichier XML. Existerait-il un moyen de le stopper (lors de la rencontre d'une fin de balise précise, par exemple) et donc l'empêcher de parcourir tout le document (qui est assez gros) ? C'est aussi parce que je n'ai besoin que d'en récupérer une sous-partie.
Merci d'avance pour vos réponses.
try { SaxParserFactory.newInstance().newSaxParser().parse(inputStream, new DefaultHandler() { public void endElement(String uri, String localName, String qName) { if (localName.equals("myelement")) { throw new RuntimeException(); } } }); } catch (SAXException e) { if (e.getException() instanceof RuntimeException) { // } }
SK wrote:
Bonjour,
J'utilise actuellement un parser SAX pour lire un fichier XML.
Existerait-il un moyen de le stopper (lors de la rencontre d'une fin de
balise précise, par exemple) et donc l'empêcher de parcourir tout le
document (qui est assez gros) ?
C'est aussi parce que je n'ai besoin que d'en récupérer une sous-partie.
Merci d'avance pour vos réponses.
try {
SaxParserFactory.newInstance().newSaxParser().parse(inputStream, new
DefaultHandler() {
public void endElement(String uri, String localName, String qName) {
if (localName.equals("myelement")) {
throw new RuntimeException();
}
}
});
}
catch (SAXException e) {
if (e.getException() instanceof RuntimeException) {
//
}
}
J'utilise actuellement un parser SAX pour lire un fichier XML. Existerait-il un moyen de le stopper (lors de la rencontre d'une fin de balise précise, par exemple) et donc l'empêcher de parcourir tout le document (qui est assez gros) ? C'est aussi parce que je n'ai besoin que d'en récupérer une sous-partie.
Merci d'avance pour vos réponses.
try { SaxParserFactory.newInstance().newSaxParser().parse(inputStream, new DefaultHandler() { public void endElement(String uri, String localName, String qName) { if (localName.equals("myelement")) { throw new RuntimeException(); } } }); } catch (SAXException e) { if (e.getException() instanceof RuntimeException) { // } }
Cheyenne
SK writes:
Bonjour,
Bonsoir,
J'utilise actuellement un parser SAX pour lire un fichier XML. Existerait-il un moyen de le stopper (lors de la rencontre d'une fin de balise précise, par exemple) et donc l'empêcher de parcourir tout le document (qui est assez gros) ? C'est aussi parce que je n'ai besoin que d'en récupérer une sous-part ie.
En désespoir de cause, il y aurait bien la possibilité de balancer une exception, mais c'est goret.
Merci d'avance pour vos réponses. HTH
-- Jérôme Marrec
Les enfants naissent à l'aube Ils se suicident en Juin -- Bérurier noir - Mineurs en danger
SK <darksk@wanadoo.fr> writes:
Bonjour,
Bonsoir,
J'utilise actuellement un parser SAX pour lire un fichier XML.
Existerait-il un moyen de le stopper (lors de la rencontre d'une fin de
balise précise, par exemple) et donc l'empêcher de parcourir tout le
document (qui est assez gros) ?
C'est aussi parce que je n'ai besoin que d'en récupérer une sous-part ie.
En désespoir de cause, il y aurait bien la possibilité de balancer une
exception, mais c'est goret.
Merci d'avance pour vos réponses.
HTH
--
Jérôme Marrec
Les enfants naissent à l'aube
Ils se suicident en Juin
-- Bérurier noir - Mineurs en danger
J'utilise actuellement un parser SAX pour lire un fichier XML. Existerait-il un moyen de le stopper (lors de la rencontre d'une fin de balise précise, par exemple) et donc l'empêcher de parcourir tout le document (qui est assez gros) ? C'est aussi parce que je n'ai besoin que d'en récupérer une sous-part ie.
En désespoir de cause, il y aurait bien la possibilité de balancer une exception, mais c'est goret.
Merci d'avance pour vos réponses. HTH
-- Jérôme Marrec
Les enfants naissent à l'aube Ils se suicident en Juin -- Bérurier noir - Mineurs en danger
Unknown
Attention, contrairement à ce que raconte notre ami inconnu, jdom n'est pas plus facile ni mieux que sax. Le dom est une toute autre approche du parsing xml. Le choix du sax ou du dom dépend avant tout des besoins (mémoire, rapidité ...)
Petite précision, JDOM est juste un nom générique, a l'intérieur il y a un SAXBuilder qui parse en SAX.
Attention, contrairement à ce que raconte notre ami inconnu, jdom n'est
pas plus facile ni mieux que sax. Le dom est une toute autre approche du
parsing xml. Le choix du sax ou du dom dépend avant tout des besoins
(mémoire, rapidité ...)
Petite précision, JDOM est juste un nom générique, a l'intérieur il y
a un SAXBuilder qui parse en SAX.
Attention, contrairement à ce que raconte notre ami inconnu, jdom n'est pas plus facile ni mieux que sax. Le dom est une toute autre approche du parsing xml. Le choix du sax ou du dom dépend avant tout des besoins (mémoire, rapidité ...)
Petite précision, JDOM est juste un nom générique, a l'intérieur il y a un SAXBuilder qui parse en SAX.