revised: Nov./16th/2003
JAXP$B$G$O!"(BXSLT$B$r=hM}$9$k$?$a$K!"%9%H%j!<%`!"(BDOM$B!"(BSAX$BMQ$N;0$D$N%Q%C%1!<%8$H!"$3$l$i$K6&DL$9$k>e0L$N%Q%C%1!<%8$rDs6!$7$F$$$^$9!#(B
javax.xml.transform
...$BHFMQ(BAPIjavax.xml.transform.dom
...DOM$BMQ(BAPIjavax.xml.transform.sax
...SAX$BMQ(BAPIjavax.xml.transform.stream
...$B%9%H%j!<%`$*$h$S(BURI$BMQ(BAPI$B%j%9%H(B3 (XSLTDemo.java
)$B$G$O!"%9%H%j!<%`$K$h$k(BXSLT$B$N=hM}$NNc$r5s$2$^$7$?!#$3$3$G$O!"%=!<%9%D%j!<$H(BXSLT$BJ8=q$rjavax.xml.transform.stream.StreamSource $B$H!"7k2L%D%j!<$rjavax.xml.transform.stream.StreamResult $B$rDj5A$7!"(BXSLT$B%W%m%;%C%5$rCj>]2=$9$k(B javax.xml.transform.Transformer
$B$H$=$N%U%!%/%H%j!javax.xml.transform.TransformerFactory $B$GF~=PNO$r9T$C$F$$$^$7$?!#(B
DOM$B$N>l9g$O!"(BDOMSource
$B$H(B DOMResult
$B$r;H$C$F!"(BDOM$B%D%j!<$G$"$k(B Document
$B%*%V%8%'%/%H$KF~=PNO$7$^$9!#%9%H%j!<%`$H(BDOM$B$G$O!"F~=PNOBP>]$,%G%P%$%9$+(BDOM$B%D%j!<$G$"$k$+$NAj0c$7$+$"$j$^$;$s!#(BSAX$B$N>l9g$b!"(BSAXSource
$B$H(B SAXResult
$B$K$h$jF~=PNO$r@)8f$G$-$^$9$,!"%$%Y%s%H6nF07?$G$"$k$?$a$K!"%O%s%I%i$K$h$k=hM}$,I,MW$K$J$j!"%9%H%j!<%`$d(BDOM$B$KHf$Y$k$H!"$d$dJ#;($G$9!#(B
$B%j%9%H(B11$B$O!"(BDOM$B%Y!<%9$N(BXSLT$B=hM}MQ$N%3!<%I$G$9!#$3$NNc$G$O!":G=i$K(BXSLT$B$H%=!<%9(BXML$B$N(B2$B$D$N(BDocument
$B%*%V%8%'%/%H$G$D$/$j!"$3$l$r0z?t$K$7$F!"(BDOMSource
$B%*%V%8%'%/%H(BxslSrc
$B$H(Bsource
$B$r@8@.$7$F$$$^$9!#(BDOMResult
$B%*%V%8%'%/%H(Bresult
$B$O!":G=i$O6u$C$]$G@8@.$7$F$$$^$9!#B3$$$F!"(BXSLT$B%W%m%;%C%5(Btransformer
$B$r%U%!%/%H%j(BtFactory
$B$+$i@8@.$7!"%a%=%C%I(Btranform()
$B$G
$B%j%9%H(B11$B$N8eH>$O!"(BDOM$B%D%j!<$N=PNOMQ$N%3!<%I$G$9!#(BDOM level 1, level 2$B$G$O!"%7%j%"%i%$%:$N(BAPI$B$ODs6!$5$l$F$$$^$;$s!#$3$3$G$O!"(BDOMResult
$B$+$i
Xerces$B$G$O!"
Document resultDoc = (Document)result.getNode();
org.apache.xml.serialize.OutputFormat
$B$G!"=PNOBP>]$N(BDocument$B%*%V%8%'%/%H!"J8;zId9f2=J}K!!"6uGrN`J8;z$N0];}$r;XDj$9$k!#(B
OutputFormat formatter = new OutputFormat(resultDoc, "UTF-8", true);
Writer out = new OutputStreamWriter(new FileOutputStream("DOMresult.xml"), "UTF-8");
org.apache.xml.serialize.XMLSerializer
$B$G!"=PNO%9%H%j!<%`$H=PNO%U%)!<%^%C%H$r;XDj$9$k!#(B
XMLSerializer serializer = new XMLSerializer(out, formatter);
$B%j%9%H(B11. DOM$B$K$h$k(BXSLT$B=hM}(B (XSLTDOMDemo.java
)
import java.io.*; import javax.xml.transform.*; import javax.xml.transform.dom.*; import javax.xml.parsers.*; import org.w3c.dom.*; import org.w3c.dom.traversal.*; import org.apache.xml.serialize.*; class XSLTDOMDemo { public static void main(String[] args) { try { // DOM$B%Q!<%5MQ%U%!%/%H%j$N@8@.(B DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setNamespaceAware(true); // $BL>A06u4V$rG'<1$9$k(B factory.setNamespaceAware(true); // DOM Document$B%$%s%9%?%s%9MQ%U%!%/%H%j$N@8@.(B DocumentBuilder builder = factory.newDocumentBuilder(); // $B2r@O$H(BDocument$B%$%s%9%?%s%9$NNs2=!K(B serializer.serialize(resultDoc); // $B=PNO%9%H%j!<%`$N%/%m!<%:(B out.close(); } catch (Exception e) { e.printStackTrace(); } } }
$B%j%9%H(B11$B$G$O!"0lHLNc$r<($9$?$a$K!"(BXMLSerializer
$B$r;H$$$^$7$?$,!"(BHTML/XSHTML$BMQ$K!"(BHTMLSerializer
/XHTMLSerializer
$B$bMQ0U$5$l$F$$$^$9!#(BDOM level 3$B$G!"%7%j%"%i%$%:$,%5%]!<%H$5$l$k$h$&$K$J$k$^$G$O!"$3$l$i$N%/%i%9$r;H$&$N$,JXMx$G$9!#(B
$B%j%9%H(B11$B$NXSLTDemo.java
$B$N>l9g$HF1MM$G$9!#Nc$($P!"(B$B%j%9%H(B9$B$N(BXSLT$BJ8=q(B (XSLTDemo3.xsl
) $B$G(B$B%j%9%H(B1$B$N(BXML$BJ8=q(B (XPathDemo.xml
)$B$rJQ49$9$k$K$O!"DOMresult.xml" $B$K=q$-=P$5$l$^$9!#C"$7!"(BDocument
$B%*%V%8%'%/%H(B resultDoc
$B$+$i$O(BDTD$B@k8@$,7gMn$7$F$$$k$N$G!"J8=q7?@k8@$O=PNO$5$l$^$;$s!#(B
>javac XSLTDOMDemo.java >java XSLTDOMDemo XSLTDemo3.xsl XPathDemo.xml
SAX$B$K$h$k(BXSLT$B$NMxMQ$O!"%9%H%j!<%`$d(BDOM$B%D%j!<$K$h$k(BAPI$B$H$O$B%j%9%H(B12$B$K5s$2$^$9!#(B
$B%j%9%H(B12$B$O!"(BXSLT$B$G%=!<%9(BXML$BJ8=q$rJQ49$7$?7k2L$K!"(B$B0JA0:n$C$?(B$B%3%s%F%s%H!&%O%s%I%i(BMySAXHandler
$B$rE,MQ$9$k$b$N$G$9!#(B
$B:G=i$K(BSAX$B%$%s%?%U%'!<%9$G$"$k(B org.xml.sax.XMLReader
$B$r@8@.$7$^$9!#B3$$$F!"8eB3$N%3!<%I$GMxMQ$9$k%G%U%)%k%H!&%O%s%I%i$H(B javax.xml.transform.sax.SAXTransformerFactory
$B$r@8@.$7$^$9!#(BSAXTransformerFactory
$B$O!"(BTransformerFactory
$B$N7Q>5$G!"(BSAX$BMQ$N(B org.xml.sax.ContentHandler
$B$r@8@.$9$k%U%!%/%H%j!&%a%=%C%I$rDs6!$7$^$9!#(B$B%j%9%H(B12$B$G$O!"(Bjavax.xml.transform.sax.TemplatesHandler
$B$H!"(Bjavax.xml.transform.sax.TransformerHandler
$B$r@8@.$7$F$$$^$9!#(B
TemplatesHandler
$B$O!"(BXSLT$BJ8=q$r9=J82r@O$7!"(Bjavax.xml.transform.Templates
$B%*%V%8%'%/%H$r@8@.$9$k$N$KMxMQ$7$^$9!#(B$B%j%9%H(B12$B$G$O!"(BErrorHandler
$B$J$I$b%G%U%)%k%H!&%O%s%I%i$r%;%C%H$7$F$+$i!"(BXSLT$BJ8=q$r9=J82r@O$7$F$$$^$9!#(B
TransformerHandler
$B$O!"(BXML$BJ8=q$r9=J82r@O$7!"%D%j!<9=B$JQ49$9$k%O%s%I%i$G$9!#(B$B%j%9%H(B12$B$G$O!"(BSAXTransformerFactory
$B$N%U%!%/%H%j!&%a%=%C%I$K!"(BTemplatesHandler
$B$,(BXSLT$BJ8=q$r9=J82r@O$7$F
TranslatesHandler
$B$,JQ497k2L$r=PNO$9$k(B javax.xml.transform.sax.SAXResult
$B$O!"%a%=%C%I(B setResult()
$B$N0z?t$H$7$FM?$($^$9!#(BSAXResult
$B$r@8@.$9$k$KEv$?$j!"%?!<%2%C%H$H$9$k(B ContentHandler
$B$r0z?t$KM?$($k$3$H$G!"(BTransformerHandler
$B$K$h$kJQ497k2L$,!"$=$N$^$^%?!<%2%C%H$N(B ContentHandler
$B$KEO$5$l$k$3$H$K$J$j$^$9!#(B
$B%j%9%H(B12. SAX$BMQ(BAPI (XSLTSAXDemo.java
)
import javax.xml.parsers.*; import javax.xml.transform.*; import javax.xml.transform.sax.*; import javax.xml.transform.stream.*; import org.xml.sax.*; import org.xml.sax.helpers.*; class XSLTSAXDemo { public static void main(String[] args) { try { // SAX$B%Q!<%5$N%U%!%/%H%j!<$N@8@.(B SAXParserFactory factory = SAXParserFactory.newInstance(); // $B%U%#!<%A%c!<$N@_Dj(B factory.setNamespaceAware(true); factory.setFeature("http://apache.org/xml/features/validation/dynamic", true); factory.setFeature("http://apache.org/xml/features/validation/schema", true); // SAX$B%Q!<%5$N@8@.(B SAXParser parser = factory.newSAXParser(); // XMLReader$B$N@8@.(B XMLReader reader = parser.getXMLReader(); //$B%G%U%)%k%H!&%O%s%I%i$N@8@.(B DefaultHandler handler = new MySAXHandler(); // $B%O%s%I%i$NEPO?(B reader.setDTDHandler(handler); reader.setErrorHandler(handler); // SAXTransformerFactory$B$N@8@.(B SAXTransformerFactory saxTFactory = (SAXTransformerFactory)TransformerFactory.newInstance(); // TemplatesHandler$B$N@8@.(B TemplatesHandler templatesHandler = saxTFactory.newTemplatesHandler(); // TemplatesHandler$B$NEPO?(B reader.setContentHandler(templatesHandler); // XSLT$BJ8=q$N2r@O(B reader.parse(args[0]); // Templates$B$N@8@.(B Templates templates = templatesHandler.getTemplates(); // TransformerHandler$B$N@8@.(B TransformerHandler transformerHandler = saxTFactory.newTransformerHandler(templates); // TransformerHandler$B$NEPO?(B reader.setContentHandler(transformerHandler); // SAXResult$B$N@8@.(B SAXResult result = new SAXResult(new MySAXHandler()); // SAXResult$B$NEPO?(B transformerHandler.setResult(result); // $B$B%j%9%H(B12$B$N
XPathDemo.xml) $B$,(B XSLT$BJ8=q(B ( XSLTDemo3.xsl
) $B$K$h$C$F(B XHTML $BJ8=q$KJQ49$5$l!"$=$N7k2L$r(BMySAXHandler
$B$,=hM}$7$F$$$k$3$H$,J,$+$j$^$9!#(B$B%j%9%H(B13.
XSLTSAXHandler.java
$B$N >javac XSLTSAXDemo.java >java XSLTSAXDemo XSLTDemo3.xsl XPathDemo.xml startDocument() startElement() namespace=http://www.w3.org/1999/xhtml local name=html qualified name=html attribute name= attribute qualified name=xmlns attribute value=http://www.w3.org/1999/xhtml attribute name=lang attribute qualified name=xml:lang attribute value=ja startElement() namespace=http://www.w3.org/1999/xhtml local name=head qualified name=head startElement() namespace=http://www.w3.org/1999/xhtml local name=meta qualified name=meta attribute name=content attribute qualified name=content attribute value=text/html; charset=UTF-8 attribute name=http-equiv attribute qualified name=http-equiv attribute value=content-type endElement() ...$B>JN,(B
Copyright © 2003 SUGAI, Manabu. All Rights Reserved.
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送