Mercurial > hg > mpdl-group
diff software/mpdl-services/mpiwg-mpdl-xml/src/de/mpg/mpiwg/berlin/mpdl/xml/transform/FragmentTransformer.java @ 23:e845310098ba
diverse Korrekturen
author | Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de> |
---|---|
date | Tue, 27 Nov 2012 12:35:19 +0100 |
parents | dc5e9fcb3fdc |
children |
line wrap: on
line diff
--- a/software/mpdl-services/mpiwg-mpdl-xml/src/de/mpg/mpiwg/berlin/mpdl/xml/transform/FragmentTransformer.java Wed Dec 14 13:57:09 2011 +0100 +++ b/software/mpdl-services/mpiwg-mpdl-xml/src/de/mpg/mpiwg/berlin/mpdl/xml/transform/FragmentTransformer.java Tue Nov 27 12:35:19 2012 +0100 @@ -3,7 +3,6 @@ import java.io.IOException; import java.io.StringWriter; import java.net.URL; -import java.util.Date; import javax.xml.transform.stream.StreamSource; @@ -24,25 +23,18 @@ private XsltCompiler xsltCompiler; private XsltTransformer xsltFragmentTransformer; - public static void main(String[] args) { - try { - FragmentTransformer fragmentTransformer = new FragmentTransformer(); - String goerzDoc = "file:/Users/jwillenborg/java/mpiwg-mpdl-xml/examples/Goerz_2008.xml"; - String benDoc = "file:/Users/jwillenborg/java/mpiwg-mpdl-xml/examples/Benedetti_1585.xml"; - String pageFragment = fragmentTransformer.getFragment(goerzDoc, "pb", 1, "pb", 2); - Date before = new Date(); - for (int i=1; i<=50; i++) { - pageFragment = fragmentTransformer.getFragment(benDoc, "pb", i, "pb", i+1); - } - Date after = new Date(); - System.out.println("Needed time: " + (after.getTime() - before.getTime()) + " ms"); - } catch (Exception e) { - e.printStackTrace(); - } + public FragmentTransformer() throws ApplicationException { + init(); } - public FragmentTransformer() throws ApplicationException { + public FragmentTransformer(String xmlFileName) throws ApplicationException { init(); + try { + StreamSource xmlDoc = new StreamSource(xmlFileName); + xsltFragmentTransformer.setSource(xmlDoc); // needs some time for bigger documents + } catch (SaxonApiException e) { + throw new ApplicationException(e); + } } private void init() throws ApplicationException { @@ -69,8 +61,6 @@ serializer.setOutputProperty(Serializer.Property.INDENT, "yes"); xsltFragmentTransformer.setSource(xmlDoc); // needs some time for bigger documents xsltFragmentTransformer.setDestination(serializer); - QName xmlFileNameQName = new QName("xmlFileName"); - XdmValue xmlFileNameXdmValue = new XdmAtomicValue(xmlFileName); QName ms1NameQName = new QName("ms1Name"); XdmValue ms1NameXdmValue = new XdmAtomicValue(ms1Name); QName ms1PositionQName = new QName("ms1Position"); @@ -79,7 +69,6 @@ XdmValue ms2NameXdmValue = new XdmAtomicValue(ms2Name); QName ms2PositionQName = new QName("ms2Position"); XdmValue ms2PositionXdmValue = new XdmAtomicValue(ms2Pos); - xsltFragmentTransformer.setParameter(xmlFileNameQName, xmlFileNameXdmValue); xsltFragmentTransformer.setParameter(ms1NameQName, ms1NameXdmValue); xsltFragmentTransformer.setParameter(ms1PositionQName, ms1PositionXdmValue); xsltFragmentTransformer.setParameter(ms2NameQName, ms2NameXdmValue); @@ -91,4 +80,33 @@ } return pageFragment; } + + public String getFragment(String ms1Name, int ms1Pos, String ms2Name, int ms2Pos) throws ApplicationException { + String pageFragment = null; + try { + Serializer serializer = new Serializer(); + serializer.setOutputWriter(new StringWriter()); + serializer.setOutputProperty(Serializer.Property.INDENT, "yes"); + xsltFragmentTransformer.setDestination(serializer); + QName ms1NameQName = new QName("ms1Name"); + XdmValue ms1NameXdmValue = new XdmAtomicValue(ms1Name); + QName ms1PositionQName = new QName("ms1Position"); + XdmValue ms1PositionXdmValue = new XdmAtomicValue(ms1Pos); + QName ms2NameQName = new QName("ms2Name"); + XdmValue ms2NameXdmValue = new XdmAtomicValue(ms2Name); + QName ms2PositionQName = new QName("ms2Position"); + XdmValue ms2PositionXdmValue = new XdmAtomicValue(ms2Pos); + xsltFragmentTransformer.setParameter(ms1NameQName, ms1NameXdmValue); + xsltFragmentTransformer.setParameter(ms1PositionQName, ms1PositionXdmValue); + xsltFragmentTransformer.setParameter(ms2NameQName, ms2NameXdmValue); + xsltFragmentTransformer.setParameter(ms2PositionQName, ms2PositionXdmValue); + xsltFragmentTransformer.transform(); // needs some time for bigger documents + pageFragment = serializer.getOutputDestination().toString(); + } catch (Exception e) { + throw new ApplicationException(e); + } + return pageFragment; + } + + }