Estoy haciendo un proyecto para analizar algunos datos del XML.JAVA SAX parser llamadas divididas a caracteres()
Por ejemplo, el XML es
<abc>abcdefghijklmno</abc>
necesito para analizar "abcdefghijkmnlp".
Pero mientras pongo a prueba mi análisis sintáctico, descubro un gran problema:
public class parser{
private boolean hasABC = false;
//Constructor HERE
......................
......................
@Override
public void startDocument() throws SAXException{
}
@Override
public void endDocument() throws SAXException{
}
@Override
public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException{
if ("abc".equalsIgnoreCase(localName)) {
this.hasABC = true;
}
}
@Override
public void endElement(String namespaceURI, String localName, String qName) throws SAXException{
if ("abc".equalsIgnoreCase(localName)) {
this.hasABC = false;
}
}
@Override
public void characters(char ch[], int start, int length){
String content = new String(ch, start, length).trim();
if(this.hasABC){
System.out.println("ABC = " + content);
}
}
}
descubro que el analizador ha analizado la etiqueta dos veces de impresión Sistema de salir es decir,
ABC = abcdefghi
ABC = JKLMNO < < ============ divide el mensaje
Por qué el analizador automático volver a llamar a los personajes() dos veces ????
¿El XML tiene algo de "\ n" o "\ r" ???
Hola @Rebecca, encontraste la solución para este problema, estoy enfrentando el mismo problema. – Ramesh