Guest User

Untitled

a guest
Dec 12th, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.64 KB | None | 0 0
  1. package nu.mine.mosher.xml.xslt;
  2.  
  3. import net.sf.saxon.s9api.*;
  4.  
  5. import javax.xml.transform.Source;
  6. import java.io.StringWriter;
  7. import java.io.Writer;
  8.  
  9. public class Saxon {
  10. private final Processor processor = new Processor(false);
  11.  
  12. public XdmNode createXdoc(final Source xml) throws SaxonApiException {
  13. return this.processor.newDocumentBuilder().build(xml);
  14. }
  15.  
  16. public StringBuffer form(final XdmValue xml) throws SaxonApiException {
  17. final StringWriter sResult = new StringWriter(2048);
  18. this.processor.writeXdmValue(xml, createXmlSerializer(sResult));
  19. return sResult.getBuffer();
  20. }
  21.  
  22. public Xslt30Transformer createXformer(final Source xslt) throws SaxonApiException {
  23. return this.processor.newXsltCompiler().compile(xslt).load30();
  24. }
  25.  
  26. public StringBuffer xform(final XdmValue xml, final Xslt30Transformer xformer) throws SaxonApiException {
  27. final StringWriter sResult = new StringWriter(2048);
  28. xformer.applyTemplates(xml, createGenericSerializer(sResult));
  29. return sResult.getBuffer();
  30. }
  31.  
  32. private Serializer createXmlSerializer(final Writer out) {
  33. final Serializer serializer = createGenericSerializer(out);
  34. serializer.setOutputProperty(Serializer.Property.METHOD, "xml");
  35. serializer.setOutputProperty(Serializer.Property.ENCODING, "utf-8");
  36. serializer.setOutputProperty(Serializer.Property.INDENT, "no");
  37. serializer.setOutputProperty(Serializer.Property.OMIT_XML_DECLARATION, "no");
  38. return serializer;
  39. }
  40.  
  41. private Serializer createGenericSerializer(final Writer out) {
  42. return this.processor.newSerializer(out);
  43. }
  44. }
Add Comment
Please, Sign In to add comment