Gestion du contenu
Définition : Principe
Cette première interface intitulée ContentHandler, permet d'analyser le flux entrant à l'aide des événements. Il suffit de redéfinir les fonctions pour avoir le comportement souhaité.
Fondamental : Le début et la fin d'un document
Dans l'interface ContentHandler, ces événements sont gérés par les deux fonctions startDocument() et endDocument().
La fonction startDocument() est la première fonction qui est appelée parmi toutes les autres. De même endDocument() est la dernière fonction qui est appelée à la fin de l'analyse.
public void startDocument() throws SAXException {
System.out.println("Debut de l'analyse du document");
}
public void endDocument() throws SAXException {
System.out.println("Fin de l'analyse du document" );
}
@Override public void startDocument() throws SAXException { System.out.println("Debut de l'analyse du document"); } @Override public void endDocument() throws SAXException { System.out.println("Fin de l'analyse du document" ); }
Fondamental : La gestion des espaces de nommage (namespaces)
L'interface propose deux fonctionnements, startPrefixMapping() et endPrefixMapping() qui gère les espaces de nommage, ils sont invoqués au début et à la fin d'un prefix mapping.
public void startPrefixMapping(String prefix, String URI) throws SAXException {
}
Override
public void endPrefixMapping(String prefix) throws SAXException {
}
@Override public void startPrefixMapping(String prefix, String URI) throws SAXException { } Override public void endPrefixMapping(String prefix) throws SAXException { }
<root>
<h:table xmlns:h="http://www.w3.org/TR/html4/">
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
<f:table xmlns:f="http://www.w3schools.com/furniture">
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
</root>
<root> <h:table xmlns:h="http://www.w3.org/TR/html4/"> <h:tr> <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr> </h:table> <f:table xmlns:f="http://www.w3schools.com/furniture"> <f:name>African Coffee Table</f:name> <f:width>80</f:width> <f:length>120</f:length> </f:table> </root>
Fondamental : La gestion d'un élément
Un élément correspond à des balises, notamment une balise ouvrante et une balise fermante.
startElement() est déclenchée au démarrage d'un élément XML (balise ouvrante), elle a plusieurs paramètres dont l'espace de nommage, le nom de la balise, et les attributs de cette balise s'ils existent.
endElement() est déclenchée à la fin du traitement d'une balise.
void startElement(String uri, String localName, String rawName, Attributes atts)
throws SAXException
void endElement(String uri, String localName, String qName)
throws SAXException
void startElement(String uri, String localName, String rawName, Attributes atts) throws SAXException void endElement(String uri, String localName, String qName) throws SAXException
<h:td id="1">Apples</h:td>
<!--
uri : http://www.w3.org/TR/html4/
localName : td
rawName : h:td
Attribut : id = 1
-->
<h:td id="1">Apples</h:td> <!-- uri : http://www.w3.org/TR/html4/ localName : td rawName : h:td Attribut : id = 1 -->
Fondamental : Contenu d'un élément (#PCDATA)
Quand l'analyseur repère l'ouverture et la fermeture d'une balise, il sera capable de récupérer le contenu de cette balise.
characters() permet de récupérer le contenu texte qui est présent entre la balise ouvrante et la balise fermante.
Elle a trois paramètres : la chaîne de caractères, le rang du premier caractère à traiter et la longueur de cette chaîne de caractère.
Exemple : Simple traitement par ContentHandler
