|
Buscador
Secciones
Otras zonas
Foros
Ganamos
Registro
|
Para empezar, añdimos el código en negrita de abajo para implementar el interface LexicalEventListener y añadir los métodos apropiados.
import com.sun.xml.parser.LexicalEventListener;
public class Echo extends HandlerBase
implements LexicalEventListener
{
...
public void processingInstruction (String target, String data)
...
}
public void comment(String text)
throws SAXException
{
}
public void startCDATA()
throws SAXException
{
}
public void endCDATA()
throws SAXException
{
}
public void startParsedEntity(String name)
throws SAXException
{
}
public void endParsedEntity(String name,
boolean included)
throws SAXException
{
}
private void emit (String s)
...
Estos son los únicos cambios que necesitamos hacer para convertir la clase Echo en un oyente de eventos léxicos. El analizador chequea el tipo de la clase, y sabe que el "document handler" que especificamos con: parser.setDocumentHandler ( new Echo() ); es realmente la clase extendida LexicalEventListener.
|
|
Nota:
El código de está sección está en Echo12.java. El fichero sobre el que opera es slideSample10.xml. Y la salida está en Echo12-10.log. |
Hacemos los cambios en negrita de abajo para eliminar la visualización de comentarios y mostrar los otros eventos.
public void comment(String text)
throws SAXException
{
nl(); emit ("COMMENT: "+text);
}
public void startCDATA()
throws SAXException
{
nl(); emit ("START CDATA SECTION");
}
public void endCDATA()
throws SAXException
{
nl(); emit ("END CDATA SECTION");
}
public void startParsedEntity(String name)
throws SAXException
{
nl(); emit ("START PARSED ENTITY: "+name);
}
public void endParsedEntity(String name,
boolean included)
throws SAXException
{
nl(); emit ("END PARSED ENTITY: "+name);
emit (", INCLUDED="+included);
}
Aquí vemos lo que sucede cuando la entidad interna products es procesada con la última versión del programa:
ELEMENT: <slide-title> CHARS: Wake up to START PARSED ENTITY: products CHARS: WonderWidgets END PARSED ENTITY: products, INCLUDED=true CHARS: ! END_ELM: </slide-title>
Y aquí está el resultado del procesamiento de la entidad externa copyright:
START PARSED ENTITY: copyright
CHARS:
This is the standard copyright message ...
END PARSED ENTITY: copyright, INCLUDED=true
Finalmente, obtenemos una salida como está para la sección CDATA:
START CDATA SECTION
CHARS: Diagram.
frobmorten <------------ fuznaten
| <3> ^
| <1> | <1> = fozzle
V | <2> = framboze
staten --------------------+ <3> = frenzle
<2>
END CDATA SECTION
En suma, el LexicalEventListener nos ofrece las notificaciones de eventos que necesitamos para producir una copia segura del texto XML original.
| Leer comentarios (25) | |
| Escribir comentario | |
| Puntuación: |
|
| Votar | |
| Recomendar este tutorial | |
| Estadísticas |
Copyright © 1999-2007
Programación en castellano.
Todos los derechos reservados.
Formulario de Contacto -
Datos legales -
Publicidad
Mantenida por: Claudio y
Dani.
Hospedaje web y servidores dedicados linux por Ferca Network
red internet: jugar gratis | amor | navidad 2009 | registro de dominios |
servidores dedicados
más internet: comprar | gratis | posicionamiento en buscadores | decoración libre | gifs animados