<?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();
}
}