Hi I have a problem reading escape characters inside an xml using XMLStreamReader.
for instance I have this element :
foo&bar
I'm not sure what the problem is - my test produces the results you expect.
Running
XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
XMLStreamReader reader = xmlInputFactory.createXMLStreamReader(
new StringReader("foo&bar "));
PrintWriter pw = new PrintWriter(System.out, true);
while (reader.hasNext())
{
reader.next();
pw.print(reader.getEventType());
if (reader.hasText())
pw.append(' ').append(reader.getText());
pw.println();
}
Produces
1
4 foo
4 &
4 bar
2
8
On JDK 1.6.0.11 - rather old I know. I'll upgrade and post back if results differ.
One thing to bear in mind is that the XMLStreamReader
can (and does!) break up character data into several blocks, as you see above - the repeated 4 events (4=CHARACTERS) indicates the text of the element is sent as 3 events.