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 127 128 129 130 131 132
| import org.xml.sax.*;
import org.xml.sax.helpers.LocatorImpl;
import java.io.*;
/**
* @author smeric
*
* Exemple d'implementation extremement simplifiee d'un SAX XML ContentHandler. Le but de cet exemple
* est purement pedagogique.
* Very simple implementation sample for XML SAX ContentHandler.
*/
public class SaxFilter implements ContentHandler {
/**
* Constructeur par defaut.
*/
private Locator locator;
private String connu = "";
private String idErr = "";
private Boolean bFound = false;
public SaxFilter() {
super();
// On definit le locator par defaut.
locator = new LocatorImpl();
}
/**
* Definition du locator qui permet a tout moment pendant l'analyse, de localiser
* le traitement dans le flux. Le locator par defaut indique, par exemple, le numero
* de ligne et le numero de caractere sur la ligne.
* @author smeric
* @param value le locator a utiliser.
* @see org.xml.sax.ContentHandler#setDocumentLocator(org.xml.sax.Locator)
*/
public void setDocumentLocator(Locator value) {
locator = value;
}
/**
* Evenement envoye au demarrage du parse du flux xml.
* @throws SAXException en cas de probleme quelquonque ne permettant pas de
* se lancer dans l'analyse du document.
* @see org.xml.sax.ContentHandler#startDocument()
*/
public void startDocument() throws SAXException {
System.out.println("Debut de l'analyse du document");
}
/**
* Evenement envoye a la fin de l'analyse du flux xml.
* @throws SAXException en cas de probleme quelquonque ne permettant pas de
* considerer l'analyse du document comme etant complete.
* @see org.xml.sax.ContentHandler#endDocument()
*/
public void endDocument() throws SAXException {
System.out.println("Fin de l'analyse du document" );
}
/**
* Evenement recu a chaque fois que l'analyseur rencontre une balise xml ouvrante.
* @param nameSpaceURI l'url de l'espace de nommage.
* @param localName le nom local de la balise.
* @param rawName nom de la balise en version 1.0 <code>nameSpaceURI + ":" + localName</code>
* @throws SAXException si la balise ne correspond pas a ce qui est attendu,
* comme par exemple non respect d'une dtd.
* @see org.xml.sax.ContentHandler#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)
*/
public void startElement(String nameSpaceURI, String localName, String rawName, Attributes attributs) throws SAXException {
System.out.println("Ouverture de la balise : " + localName);
try{
if (localName.equals("Syslog")) {
String c = attributs.getValue("","component");
String e = attributs.getValue("","errorCode");
if (c.equals("OC")&& e.equals("OC00")) {
connu= "A";
idErr = attributs.getValue("","id")+"\n";
}
}
}catch(Exception err){
System.out.println("Erreur Ouverture de la balise Syslog: " );
}
try{
if (localName.equals("Message")) {
String i = attributs.getValue("","id");
if (i.equals("OC_EXTENDED_UNKNOWN_ATTR")) {
connu += "B";
}
}
}catch(Exception err){
System.out.println("Erreur Ouverture de la balise message: " );
}
}
public void characters(char[] ch, int start, int length) throws SAXException {
try{
if(new String(ch,start,length).equals("Faurecia_IAMState")){
if(connu.equals("AB")){
bFound = true;
}
}
}catch(Exception err){
System.out.println("Erreur Ouverture de la balise texte: " );
}
}
public Boolean getFound(){
return bFound;
}
public void endElement(String uri, String localName, String qName) throws SAXException {
return;
}
public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException {
return;
}
public void processingInstruction(String target, String data) throws SAXException {
return;
}
public void skippedEntity(String name) throws SAXException {
return;
}
public void startPrefixMapping(String prefix, String uri) throws SAXException {
return;
}
public void endPrefixMapping(String prefix) throws SAXException {
return;
}
} |
Partager