1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
| /* -*-Java-*- (encoding:iso8859-1)
* ########################################################################
*
* FILE: "XML.java"
*
* History
*
* modified by rev reason
* ---------- --- --- -----------
* 2006-11-24 FBO 1.0 original
*
* ########################################################################
*/
//Représente un fichier sur disque
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.w3c.dom.NodeList;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class Exemple {
public static void main(String[] args) {
// Notre fichier d'exemple XML
File f = new File("exemple.xml");
SAXParser p = null;
// On crée maintenant un parseur SAX pour relire notre fichier
try {
p = SAXParserFactory.newInstance().newSAXParser();
// On active les namespaces, sinon, on ne récupèrera pas le nom
// des éléments dans les méthodes start/endElement
p.getXMLReader().setFeature("http://xml.org/sax/features/namespaces", true);
} catch (ParserConfigurationException pce) {
System.err.println("Impossible de créer le parseur SAX.");
System.err.println(pce);
System.exit(1);
} catch (SAXException saxe) {
System.err.println("Erreur SAX.");
System.err.println(saxe);
System.exit(1);
}
// On demande maintenant au parseur d'analyser le fichier en signalant
// les événements à une instance de MonGestionnaire.
try {
p.parse(f, new MonGestionnaire());
} catch (SAXException saxe) {
System.err.println("Erreur SAX.");
System.err.println(saxe);
System.exit(1);
} catch (IOException ioe) {
System.err.println("Erreur de lecture du fichier.");
System.err.println(ioe);
System.exit(1);
}
}
}
/**
* Notre gestionnaire d'événements SAX
*/
class MonGestionnaire extends DefaultHandler {
/** Appelée avant toutes les autres méthodes, au début du document. */
// public void startDocument() {
// System.out.println("--Début du document--");
// }
/** Appelée après toutes les autres méthodes, à la fin du document. */
// public void endDocument() {
// System.out.println();
// System.out.println("--Fin du document--");
// }
/**
* Appelée à chaque fois qu'un élément est rencontré.
* - uri est l'URI de l'espace de nom auquel appartient l'élément
* - localName est le nom de l'élément (sans préfixe d'espace de nom)
* - qName est le nom qualifié de l'élément (avec préfixe d'espace de nom)
* - attributes est la liste des attributs de l'élément.
* @throws IOException
*/
public void startElement(String uri, String localName,
String qName, Attributes attributes) {
BufferedReader keyboard=new BufferedReader(new InputStreamReader(System.in));
String line = "";
System.out.print("donner la balise");
try{
line=keyboard.readLine();
}catch(IOException e){
System.out.println("err");
}
//int j=0;
if(localName.equals(line)){
System.out.print("<" + localName);
for (int i = 0; i < attributes.getLength(); i++) {
System.out.print(" " + attributes.getLocalName(i)
+ "=\"" + attributes.getValue(i) + "\"");
}
System.out.print(">");
}
}
/** Appelée à chaque fois qu'une fin d'élément est rencontrée. */
public void endElement(String uri, String localName, String qName) {
System.out.print("</" + localName + ">");
}
/** Fournit les données trouvées à l'intérieur d'un élément. */
public void characters(char[] ch, int start, int length) {
System.out.print(new String(ch, start, length));
}
/** Fournit des espaces ignorables trouvés à l'intérieur d'un élément. */
public void ignorableWhitespace(char[] ch, int start, int length) {
for(int i = 0; i < length; i++) {
System.out.print('_');
}
// System.out.print(new String(ch, start, length));
}
} |
Partager