Prog de base mais qui ne marche pas ??? - PB RESOLU - [XML] - Divers - Programmation
Marsh Posté le 14-01-2003 à 16:43:53
Marsh Posté le 14-01-2003 à 17:31:29
pb
Marsh Posté le 14-01-2003 à 19:22:27
Pb règlé :
public void startElement(String name, Attributes atts){
fallait redefinir complètement startElement et endElement avec tous les attributs ! Confusion avec Sax 1.0 mais c'est un peu normal vu le peu d'info concrète avec Sax 2.0
Marsh Posté le 14-01-2003 à 16:13:06
Bonjour à tous ceux qui veulent bien m'aider...
![[:zoutte] [:zoutte]](https://forum-images.hardware.fr/images/perso/zoutte.gif)
Voilà, je suis depuis pas longtemps dans le xml et impossible de sortir un document parser...
utilisation de SAX 2.0
utilisation de jaxp de sun
et nombreuse larme au bout....
-> pb à la fin du topic
I - utilisation du parseur : (Testparse)
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import org.xml.sax.ext.*;
import org.xml.sax.XMLReader;
import javax.xml.parsers.SAXParserFactory;
import java.util.Properties;
import javax.xml.parsers.SAXParser;
import java.io.IOException;
import javax.xml.parsers.ParserConfigurationException;
public class Testparse{
public static void main(String [] args){
SAXParser parser;
DefaultHandler handler = new MyApplicationParseHandler();
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true);
factory.setValidating(true);
System.out.println("avant try" );
try {
parser = factory.newSAXParser();
parser.parse("C:\\MENU.XML", handler);
}
catch (SAXException se) {
System.out.println("error SAX" );
}
catch (IOException ioe) {
System.out.println("IO" );
}
catch (ParserConfigurationException pce) {
System.out.println("ParserConfigurationException" );
}
System.out.println("après catch" );
}
}
II - Le handler : (MyApplicationParseHandler.java)
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import org.xml.sax.ext.*;
import javax.xml.parsers.SAXParserFactory;
import java.util.Properties;
import javax.xml.parsers.SAXParser;
public class MyApplicationParseHandler extends DefaultHandler{
public void startElement(String name, Attributes atts){
System.out.println("Balise ouvrante : " + name);
}
public void endElement(String name){
System.out.println("Balise fermante : " + name);
}
}
III - Et un document à parser : (menu.xml)
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE menu[
<!ELEMENT menu (categorie*)>
<!ATTLIST menu
mode (abrege | etendu) 'abrege'>
<!ELEMENT categorie (categorie* | application*)>
<!ATTLIST categorie
id ID #REQUIRED
ouvert (oui | non) 'oui'
titre CDATA #REQUIRED>
<!ELEMENT application (lien, titre, description)>
<!ELEMENT lien (#PCDATA)>
<!ELEMENT titre (#PCDATA)>
<!ELEMENT description (#PCDATA)>
]>
<menu mode="abrege">
<categorie id="jaxp" titre="Java API for XML Parsing">
<application>
<lien>/menuJSP/menuSAXJaxp.jsp</lien>
<titre>SAX - Jaxp </titre>
<description> Menu Java XML avec API DOM - Java API for XML Parsing</description>
</application>
<application>
<lien>/menuJSP/menuDOMJaxp.jsp</lien>
<titre>DOM - Jaxp </titre>
<description> Menu Java XML avec API DOM - Java API for XML Parsing</description>
</application>
</categorie>
<categorie id="xerces" titre="Apache Xerces">
<application>
<lien>/menuJSP/menuSAXJXerces.jsp</lien>
<titre>SAX - Xerces </titre>
<description> Menu Java XML avec API DOM - Apache Xerces</description>
</application>
<application>
<lien>/menuJSP/menuDOMXerces.jsp</lien>
<titre>DOM - Xerces </titre>
<description> Menu Java XML avec API DOM - Apache Xerces</description>
</application>
</categorie>
<categorie id="oracle" titre="Oracle XML Parser">
<application>
<lien>/menuJSP/menuSAXJOracle.jsp</lien>
<titre>SAX - Oracle's XML Parser </titre>
<description> Menu Java XML avec API DOM - Oracle's XML Parser for Java v2</description>
</application>
<application>
<lien>/menuJSP/menuDOMOracle.jsp</lien>
<titre>DOM - Oracle's XML Parser </titre>
<description> Menu Java XML avec API DOM - Oracle's XML Parser for Java v2</description>
</application>
</categorie>
</menu>
IV - CONCLUSION
A l'excution de testparse, il m'affiche :
avant try
après catch
et c tout
Logiquement, il devrait me lister toutes les balises ouvrantes et fermantes non ???
pourquoi il le fait pas
Message édité par magicien96 le 14-01-2003 à 19:23:17
---------------
Ils ne savaient pas que c'était impossible, alors ils l'ont fait. ©Mark Twain