У меня есть SAXParser с XMLReader.
SAXParserFactory saxPF = SAXParserFactory.newInstance();
SAXParser sp = saxPF .newSAXParser();
XMLReader xmlR = sp.getXMLReader();
MyHandler myHandler = new MyHandler();
xmlR .setContentHandler(myHandler );
Мой код обработчика использует startElement и endElement для обнаружения внутри тега. Он делает это, устанавливая логическое значение и используя символы() для получения значения.
public void startElement(String namespaceURI,
String localName, String qName, Attributes atts) throws SAXException {
if (localName.equals("myTag")) this.in_myTag = true;
}
public void characters(char ch[], int start, int length) {
if(in_myTag ) { c.setMyTag(new String(ch, start, length));
}
Проблема в том, что у меня есть тег «Значение A и B», и он уведомляет символы () для «A», «&», «B» и «Value». Таким образом, окончательное значение setMyTag равно «Value».
<myTag>A & B value</myTag>
http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html