Dom4j : XML + XSL = HTML

感谢作者:http://blog.youkuaiyun.com/kunshan_shenbin/article/details/4483590

测试代码如下:

TransformerTest.java

  1. importjava.io.File;
  2. importjava.io.IOException;
  3. importjava.io.StringWriter;
  4. importjava.io.UnsupportedEncodingException;
  5. importjava.net.MalformedURLException;
  6. importjavax.xml.transform.Transformer;
  7. importjavax.xml.transform.TransformerFactory;
  8. importjavax.xml.transform.stream.StreamSource;
  9. importorg.dom4j.Document;
  10. importorg.dom4j.DocumentException;
  11. importorg.dom4j.DocumentHelper;
  12. importorg.dom4j.io.DocumentResult;
  13. importorg.dom4j.io.DocumentSource;
  14. importorg.dom4j.io.HTMLWriter;
  15. importorg.dom4j.io.OutputFormat;
  16. importorg.dom4j.io.SAXReader;
  17. publicclassTransformerTest{
  18. publicstaticvoidmain(String[]args)throwsException{
  19. TransformerFactoryfactory=TransformerFactory.newInstance();
  20. Transformertransformer=factory.newTransformer(newStreamSource(newFile("test.xsl")));
  21. SAXReaderreader=newSAXReader();
  22. DocumentSourcesource=newDocumentSource(reader.read("test.xml"));
  23. DocumentResultresult=newDocumentResult();
  24. transformer.transform(source,result);
  25. DocumenttransformedDoc=result.getDocument();
  26. toPretyHtml(transformedDoc);
  27. }
  28. publicstaticDocumentread(StringfileName)throwsMalformedURLException,DocumentException{
  29. SAXReaderreader=newSAXReader();
  30. Documentdocument=reader.read(newFile(fileName));
  31. returndocument;
  32. }
  33. publicstaticvoidtoPretyHtml(Documentdocument)throwsException{
  34. StringWritersw=newStringWriter();
  35. OutputFormatformat=OutputFormat.createPrettyPrint();
  36. HTMLWriterwriter;
  37. try{
  38. writer=newHTMLWriter(sw,format);
  39. Documentdoc=DocumentHelper.parseText(document.asXML());
  40. writer.write(doc);
  41. writer.flush();
  42. System.out.println(sw.toString());
  43. }catch(UnsupportedEncodingExceptione){
  44. e.printStackTrace();
  45. }catch(IOExceptione){
  46. e.printStackTrace();
  47. }
  48. }
  49. //publicstaticDocumentstyleDocument(Documentdocument,Stringstylesheet)
  50. //throwsException{
  51. //
  52. //TransformerFactoryfactory=TransformerFactory.newInstance();
  53. //Transformertransformer=factory.newTransformer(newStreamSource(stylesheet));
  54. //DocumentSourcesource=newDocumentSource(document);
  55. //DocumentResultresult=newDocumentResult();
  56. //transformer.transform(source,result);
  57. //DocumenttransformedDoc=result.getDocument();
  58. //
  59. //returntransformedDoc;
  60. //}
  61. //
  62. //publicstaticvoidmain(String[]argv)throwsException{
  63. //
  64. //Documentdocument=read("test1.xml");
  65. //DocumenttransformedDoc=styleDocument(document,"test1.xsl");
  66. //
  67. System.out.println(transformedDoc.asXML());
  68. //toPretyHtml(transformedDoc);
  69. //}
  70. }

test.xsl:

  1. <?xmlversion="1.0"?>
  2. <xsl:stylesheetxmlns:xsl="http://www.w3.org/1999/XSL/Transform"version="1.0">
  3. <xsl:templatematch="doc">
  4. <html>
  5. <out>
  6. <xsl:value-ofselect="."/>
  7. </out>
  8. </html>
  9. </xsl:template>
  10. </xsl:stylesheet>

test.xml:

  1. <?xmlversion="1.0"?>
  2. <doc>Hello</doc>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值