Crear un parser con SAX
Artículo por Club Developers · 25 mayo 2006
2477 vistas
Veamos un ejemplo de creación de parser SAX usando un DefaultHandler.
Este código no hace "nada", en el sentido que no tendremos ningún efecto visual de la ejecución. Simplemente muestra cómo obtener un parser y los tipos de excepció susceptibles de provocarse. Para un ejemplo de implementación de DefaultHandler ver: [iurl=90&all=0&fs=896#900]Parsear un XML con SAX[/iurl].
Veamos algunas propiedades del parser (SAXParser) que podemos especificar a la factory (SAXParserFactory):
Para terminar, podemos configurar más profundamente nuestro parser con el método setProperty(String, Object) de la clase SAXParser.
java
import org.xml.sax.*; import org.xml.sax.helpers.*; import javax.xml.parsers.*; import java.io.*; public class ExempleSAX {    try{     // creación de una factory de parsers SAX     SAXParserFactory factory = SAXParserFactory.newInstance();     // creación de un parser SAX     SAXParser parser = factory.newSAXParser();     // lectura del fichero XML con un DefaultHandler     DefaultHandler handler = new DefaultHandler();     parser.parse(fichero, handler);    }catch(ParserConfigurationException pce){    }catch(SAXException se){    }  } }
Este código no hace "nada", en el sentido que no tendremos ningún efecto visual de la ejecución. Simplemente muestra cómo obtener un parser y los tipos de excepció susceptibles de provocarse. Para un ejemplo de implementación de DefaultHandler ver: [iurl=90&all=0&fs=896#900]Parsear un XML con SAX[/iurl].
Veamos algunas propiedades del parser (SAXParser) que podemos especificar a la factory (SAXParserFactory):
- setValidating(boolean): indica si los parsers producidos por la factory tienen que validar el DTD. Por defecto está a false
- setSchema(Schema): indica que los parsers producidos por la factory tienen que validar el documento XML según un esquema XML W3C.
- setFeature(String, boolean): permite indicar una propiedad particular para los parsers producidos por la factory. Verlas aquÃ
- setNamespaceAware(boolean): indica si los parsers producidos por la factory soportan los espacios de nombre XML.
Para terminar, podemos configurar más profundamente nuestro parser con el método setProperty(String, Object) de la clase SAXParser.