xml parsing af special tegn med DefaultHandler
Jeg har en klasse som skal parse noget xml. Til dette formål benytter arver jeg fra klassen org.xml.sax.helpers.DefaultHandler.jeg har en metode parseContent() som starter parsingen af xml documentet, jeg har udelat exception handling for overskuelighedens skyld
protected void parseContent(){
SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setValidating(false);
SAXParser saxParser = null;
XMLReader xmlReader = null;
saxParser = spf.newSAXParser();
Reader reader = null;
if (getResource() != null) {
reader = new InputStreamReader(getResource().getUnfilteredContent().getInputStream(), Charset.forName("ISO-8859-1"));
xmlReader.setContentHandler(this);
xmlReader.parse(new InputSource(reader));
}
kaldet "xmlReader.parse(new InputSource(reader));" starter en parsing af documentet som fyrer events på bestemte tidspunkter i parsingen
f.eks.
public void characters(char ch[], int start, int length) throws SAXException {
if (current != null) {
current.append(ch, start, length);
}
}
//current er en StringBuffer
public void endElement(String uri, String name, String qName) throws SAXException {
if (name.equals("TITLE")) {
title = current.toString();
}
}
alt det fungerer som det skal, problemet opstår når der er special tegn (f.eks æøå) i xml filen, så bliver det til krims krams.
Jeg har forsøgt at give et Charset(ISO-8859-1) til inputStreamen men det gør ikke rigtig nogen forskel
Er der nogen der har erfaringer med lignende problemer ved brug af defaultHandler?