Ik ben een parser aan het bouwen voor wat XML. Hiervoor gebruik ik een SAX-parser. Het probleem waar ik tegen aanloop is dat entiteiten worden vertaald op het moment dat ik dat niet wens. De vertaling kan ik wel mee leven, maar de parser ziet in dat geval 3 regels met characters. Het volgende voorbeeld illustreert mijn probleem.
Gegeven het volgende XML fragment:
en gegeven de volgende implementatie van de characters method in org.xml.sax.ContentHandler:
wordt de volgende output geproduceerd:
In de output is te zien dat drie textnodes worden gevonden. Hoe krijg ik de parser zover dat hij alles tussen de <regel> tags ziet als één regel tekst, zonder de context bij te houden in de characters method?
Gegeven het volgende XML fragment:
XML:
1
2
3
| <tekst> <regel>Jip & Janneke</regel> </tekst> |
en gegeven de volgende implementatie van de characters method in org.xml.sax.ContentHandler:
Java:
1
2
3
4
| public void characters(char[] ch, int start, int length) throws SAXException { String text = new String(ch, start, length); System.out.println("***TEXTNODE*** " + text); } |
wordt de volgende output geproduceerd:
Text output:
1
2
3
| ***TEXTNODE*** Jip ***TEXTNODE*** & ***TEXTNODE*** Janneke |
In de output is te zien dat drie textnodes worden gevonden. Hoe krijg ik de parser zover dat hij alles tussen de <regel> tags ziet als één regel tekst, zonder de context bij te houden in de characters method?
"Kill one man, and you are a murderer. Kill millions of men, and you are a conqueror. Kill them all, and you are a god." -- Jean Rostand