Guest User

Untitled

a guest
Feb 16th, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. import com.ctc.wstx.api.WstxInputProperties;
  2.  
  3. import com.ctc.wstx.stax.WstxInputFactory;
  4. import java.util.HashMap;
  5. import java.util.Map;
  6. import javax.xml.stream.XMLEventReader;
  7. import javax.xml.stream.XMLInputFactory;
  8. import javax.xml.stream.XMLResolver;
  9. import javax.xml.stream.XMLStreamException;
  10. import javax.xml.stream.events.XMLEvent;
  11.  
  12. /**
  13. *
  14. * @author inaki
  15. */
  16. public class Main {
  17.  
  18. public static void main(String[] args) throws Exception {
  19. (new Main()).doSaxParsing("/employee.xml");
  20. }
  21.  
  22. private void doSaxParsing(String xmlFileName) throws Exception {
  23. XMLInputFactory factory = WstxInputFactory.newInstance();
  24.  
  25. factory.setProperty(WstxInputProperties.P_UNDECLARED_ENTITY_RESOLVER, new NaiveHtmlEntityResolver());
  26.  
  27. XMLEventReader xmlr = factory.createXMLEventReader(
  28. this.getClass().getResourceAsStream(xmlFileName));
  29.  
  30. while (xmlr.hasNext()) {
  31. XMLEvent event = xmlr.nextEvent();
  32. if (event.isCharacters()) {
  33. System.out.println(event.asCharacters().getData());
  34. }
  35. }
  36. }
  37.  
  38. public static class NaiveHtmlEntityResolver implements XMLResolver {
  39.  
  40. private static final Map<String, String> ENTITIES = new HashMap<>();
  41.  
  42. static {
  43. ENTITIES.put("nbsp", " ");
  44. ENTITIES.put("apos", "'");
  45. ENTITIES.put("quout", "\"");
  46. // and so on
  47. }
  48.  
  49. @Override
  50. public Object resolveEntity(String publicID,
  51. String systemID,
  52. String baseURI,
  53. String namespace) throws XMLStreamException {
  54. if (publicID == null && systemID == null) {
  55. return ENTITIES.get(namespace);
  56. }
  57. return null;
  58. }
  59. }
  60. }
Add Comment
Please, Sign In to add comment