XML转换成HTML


<?xml version='1.0' encoding='utf-8'?>
<DATA>
	<PERSON>
		 <ITEM>
				  <PERNAME>黎万强</PERNAME>
				  <POSITION>监事</POSITION>
		 </ITEM>
		 <ITEM>
				  <PERNAME>刘芹</PERNAME>
				  <POSITION>董事</POSITION>
		 </ITEM>
	</PERSON>
</DATA>;

XML文件

<?xml version='1.0' encoding='utf-8'?>
<DATA>
	<PERSON>
		 <ITEM>
				  <PERNAME>黎万强</PERNAME>
				  <POSITION>监事</POSITION>
		 </ITEM>
		 <ITEM>
				  <PERNAME>刘芹</PERNAME>
				  <POSITION>董事</POSITION>
		 </ITEM>
	</PERSON>
</DATA>;

xsl文件

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<title>工商信息</title>
</head>
<body bgcolor="blue">
<div align='center'>
<p style="color:black;font-size:16px;"><b>主要管理人员信息</b></p>
</div>
<div align='center' style='font-size: 12px'>
<table border='1' cellspacing='0' cellpadding='0' width='930'>
<tr bgcolor="#AFEEEE">
<td width="100">
               <p align="center">
                 <strong>人员姓名</strong>
               </p>
            </td>
<td width="100">
               <p align="center">
                 <strong>职务</strong>
               </p>
            </td>
      </tr>
      <xsl:for-each select="DATA/PERSON/ITEM">
      <tr>
             <td>
               <p align="center">
                 <xsl:value-of select="PERNAME"/>
               </p>
             </td>
             <td>
               <p align="center">
                 <xsl:value-of select="POSITION"/>
               </p>
             </td>
      </tr>
      </xsl:for-each>
</table>
</div>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

java文件

import java.io.IOException;
import java.io.StringWriter;

import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamSource;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.io.DocumentResult;
import org.dom4j.io.DocumentSource;
import org.dom4j.io.HTMLWriter;
import org.dom4j.io.OutputFormat;


public class XMLTransferHtml {
/**
     * 将XML以XSL样式转化为HTML字符串
     * @param xmlString 传入的XML字符串
     * @param xslPath          xsl文件路径
     * @return
     */
    public static String getHTMLString(String xmlString,String xslPath){
          String htmlStr ="";
          try {
               Document doc = DocumentHelper.parseText(xmlString);
               Document transformDoc = transformDocument(doc,xslPath);
               htmlStr = writeString(transformDoc);
          } catch (DocumentException e) {
               e.printStackTrace();
          }
          return htmlStr;
    }
    
    
    
    
    /**
     * 通过xsl将xml数据文件转化为doc对象
     * @param doc
     * @param xslPath
     * @return
     */
    public static Document transformDocument(Document doc,String xslPath){
          TransformerFactory factory = TransformerFactory.newInstance();
          Document transformerDoc = null;
          try {
               Transformer transformer = factory.newTransformer(new StreamSource(xslPath));
               DocumentSource docSource = new DocumentSource(doc);
               DocumentResult docResult = new DocumentResult();
               transformer.transform(docSource, docResult);
               transformerDoc = docResult.getDocument();
          } catch (TransformerConfigurationException e) {
                   e.printStackTrace();
          } catch (TransformerException e1) {
                   e1.printStackTrace();
          }
          return transformerDoc;
          
    }
    
    
    /**
     * 将doc文档对象转化为HTML字符串
     * @param transformDoc
     * @return
     */
    public static String writeString(Document transformDoc){
          StringWriter strWriter = new StringWriter();
          OutputFormat format = OutputFormat.createPrettyPrint();
          format.setEncoding("GBK");
          format.setXHTML(true);
          HTMLWriter htmlWriter = new HTMLWriter(strWriter,format);
          format.setExpandEmptyElements(false);
          try {
                   htmlWriter.write(transformDoc);
                   htmlWriter.flush();
          } catch (IOException e) {
                   e.printStackTrace();
          }
          return strWriter.toString();     
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值