I am not sure what the problem is: my test gives the expected results.
Launch
XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
XMLStreamReader reader = xmlInputFactory.createXMLStreamReader(
new StringReader("<tag>foo&bar</tag>"));
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();
}
Gives out
1
4 foo
4 &
4 bar
2
8
In JDK 1.6.0.11 - pretty old, I know. I will update and send messages if the results are different.
, XMLStreamReader ( !) , - 4 (4 = CHARACTERS) , 3 .