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...
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