Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import com.ctc.wstx.api.WstxInputProperties;
- import com.ctc.wstx.stax.WstxInputFactory;
- import java.util.HashMap;
- import java.util.Map;
- import javax.xml.stream.XMLEventReader;
- import javax.xml.stream.XMLInputFactory;
- import javax.xml.stream.XMLResolver;
- import javax.xml.stream.XMLStreamException;
- import javax.xml.stream.events.XMLEvent;
- /**
- *
- * @author inaki
- */
- public class Main {
- public static void main(String[] args) throws Exception {
- (new Main()).doSaxParsing("/employee.xml");
- }
- private void doSaxParsing(String xmlFileName) throws Exception {
- XMLInputFactory factory = WstxInputFactory.newInstance();
- factory.setProperty(WstxInputProperties.P_UNDECLARED_ENTITY_RESOLVER, new NaiveHtmlEntityResolver());
- XMLEventReader xmlr = factory.createXMLEventReader(
- this.getClass().getResourceAsStream(xmlFileName));
- while (xmlr.hasNext()) {
- XMLEvent event = xmlr.nextEvent();
- if (event.isCharacters()) {
- System.out.println(event.asCharacters().getData());
- }
- }
- }
- public static class NaiveHtmlEntityResolver implements XMLResolver {
- private static final Map<String, String> ENTITIES = new HashMap<>();
- static {
- ENTITIES.put("nbsp", " ");
- ENTITIES.put("apos", "'");
- ENTITIES.put("quout", "\"");
- // and so on
- }
- @Override
- public Object resolveEntity(String publicID,
- String systemID,
- String baseURI,
- String namespace) throws XMLStreamException {
- if (publicID == null && systemID == null) {
- return ENTITIES.get(namespace);
- }
- return null;
- }
- }
- }
Add Comment
Please, Sign In to add comment