一、在浏览器上
在浏览器中用XSLT将XML转换为XHTML文档:
(1)通过向XML文档添加XSL样式表,并通过浏览器完成这个转换过程。
(2)通过javascript[更通用]。
javascript:用XSL文档转换XML文档。
- 原理:用XML解析器进行转换。
- 局限性:没有XML解析器的浏览器无法正常工作。
<html>
<body>
<script type="text/javascript">
// Load XML
var xml = new ActiveXObject("Microsoft.XMLDOM")
xml.async = false
xml.load("cdcatalog.xml")
// Load XSL
var xsl = new ActiveXObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load("cdcatalog.xsl")
// Transform
document.write(xml.transformNode(xsl))
</script>
</body>
</html>
二、在服务器上
原因:让XML数据使用于任何类型的浏览器,包括那些没有XML解析器的浏览器。
XSLT的设计目标之一就是使数据在服务器上从一种格式转换为另外一种格式成为可能,并向所有类型的浏览器返回可读的数据。
java将XML转换为HTML
package bill.com;
import java.io.File;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
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.StreamResult;
import javax.xml.transform.stream.StreamSource;
public class XML2HTML {
/**
* @param args
*/
public static void Transform(String xmlFileName, String xslFileName,
String htmlFileName) {
try {
TransformerFactory tFac = TransformerFactory.newInstance();
Source xslSource = new StreamSource(xslFileName);
Transformer t = tFac.newTransformer(xslSource);
File xmlFile = new File(xmlFileName);
File htmlFile = new File(htmlFileName);
Source source = new StreamSource(xmlFile);
Result result = new StreamResult(htmlFile);
System.out.println(result.toString());
t.transform(source, result);
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String xmlFileName = "C:\\Bill\\temp\\convert2HTML\\test.xml";
String xslFileName = "C:\\Bill\\temp\\convert2HTML\\xsl.xsl";
String htmlFileName = "C:\\Bill\\temp\\convert2HTML\\html.html";
Transform(xmlFileName, xslFileName, htmlFileName);
}
}