Hum ! Une question typique Java, bien que très orientée XML ! A ma
défense, je l'ai déjà posée sur java@u-strasbg.fr, et j'ai pas eu de
réponse. Aurai-je plus de chance avec vous ? Merci d'avance.
Pourriez-vous m'expliquer une différence de comportement d'un
analyseur SAX ?
Je fais passer le fichier XML suivant :
<?xml version="1.0" encoding="ISO-8859-1"?>
<zozo> </zozo>
... dans le parser SAX de jaxp. J'affiche les parametres de la
methode startElement de mon pilote sax. J'obtiens :
uri=
localName=zozo
qName=zozo
Puis je fais pareil avec Xalan J 2.2.0. J'obtiens :
uri=
localName=
qName=zozo
Vous remarquerez que les valeurs de localName ne sont pas les mêmes.
Qui a raison ? Que dois-je faire pour avoir un comportement à peu
près stable en fonction des parsers sax ? (je voudrais tout
simplement traiter une balise XML ! Est-ce que qName c'est fiable !?
)
Voici mon programme java (excusez le coté frugal, c'est pour la démo)
:
==>
import javax.xml.parsers.ParserConfigurationException; import
javax.xml.parsers.SAXParser; import
javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes; import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException; import
org.xml.sax.helpers.AttributesImpl;
public class saxessai { private PiloteSAX monSAX;
public saxessai(String nomFichierXML) throws Exception {
SAXParserFactory saxpf = SAXParserFactory.newInstance();
SAXParser saxp = saxpf.newSAXParser(); monSAX = new PiloteSAX();
saxp.parse(nomFichierXML, monSAX); }
public static void main(String args[]) throws Exception { new
saxessai(args[0]); }
private class PiloteSAX extends org.xml.sax.helpers.DefaultHandler
{ public void startElement (String uri, String localName,
String qName, Attributes attributes) throws SAXException {
System.out.println("uri="+uri+
"\nlocalName="+localName+ "\nqName="+qName);
} } }
Pour le lancer il faut faire java saxessai <mon fichier xml>
Merci d'avance.
--
Sur le Web, tout de suite.
Herve AGNOUX - diaam informatique
http://www.diaam-informatique.com
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Received on Wed Feb 6 15:51:42 2002