Ich mache ein Projekt, um einige Daten aus dem XML zu analysieren.JAVA SAX-Parser Anrufe auf Zeichen aufteilen()
Zum Beispiel kann die XML ist
<abc>abcdefghijklmno</abc>
ich brauche "abcdefghijkmnlp" zu analysieren.
Aber während ich meine Parse testen entdecke ich ein großes Problem:
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);
}
}
}
ich feststellen, dass der Parser den Tag zwei Mal System-Druck aus ist,
ABC = abcdefghi
analysiert hatABC = jklmno < < ============ spaltete die Nachricht
Warum der Parser Auto die Zeichen() zweimal zurückrufen ???
Ist die XML einige "\ n" oder "\ r" ???
Hallo @Rebecca, hast du eine Lösung für dieses Problem gefunden, ich bin mit dem gleichen Problem konfrontiert. – Ramesh