import java.io.FileInputStream;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamReader;
public class EntityReferenceTest {
public static void main(String[] args) throws Exception {
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
inputFactory.setProperty(XMLInputFactory.IS_COALESCING, Boolean.TRUE);
inputFactory.setProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES, Boolean.TRUE);
XMLStreamReader reader = inputFactory.createXMLStreamReader(new FileInputStream("e.xml"));
while (reader.hasNext()) {
int event = reader.next();
if (event == XMLStreamConstants.CHARACTERS)
System.out.println(reader.getText());
else if (event == XMLStreamConstants.ENTITY_REFERENCE) {
System.out.println("en: " + reader.getLocalName());
System.out.println("er: " + reader.getText());
}
}
inputFactory.setProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES, Boolean.FALSE);
reader = inputFactory.createXMLStreamReader(new FileInputStream("e.xml"));
while (reader.hasNext()) {
int event = reader.next();
if (event == XMLStreamConstants.CHARACTERS)
System.out.println(reader.getText());
else if (event == XMLStreamConstants.ENTITY_REFERENCE) {
System.out.println("en: " + reader.getLocalName());
System.out.println("er: " + reader.getText());
}
}
}
}