Robię projekt parsowania niektórych danych z pliku XML.Parser JAVA SAX dzieli rozmowy na znaki()
Na przykład, XML jest
<abc>abcdefghijklmno</abc>
muszę analizować "abcdefghijkmnlp".
Ale jednocześnie przetestować parse, odkrywam wielki 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);
}
}
}
I okazuje się, że parser jest analizowany tag dwa raz Print System OUT,
ABC = abcdefghi
ABC = jklmno < < ============ podzielić wiadomość
Dlaczego auto parser oddzwonić znaki() dwa razy ????
Czy XML ma jakieś "\ n" lub "\ r" ???
Witam @Rebecca, znalazłeś rozwiązanie dla tego problemu, mam do czynienia z tym samym problemem. – Ramesh