加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

通过xslt将xml转换为html代码

发布时间:2020-12-15 23:48:40 所属栏目:百科 来源:网络整理
导读:1)一个xml文件,里面是需要转换的内容 2)一个xslt文件,里面是转换的格式 3)一个java测试类,通过此类将文件进行转换 xml文件和xlst文件以及java代码, xml文件: ?xmlversion="1.0"encoding="ISO-8859-1"? ?xml-stylesheettype="text/xsl"href="cdcatalog.xsl"?


1)一个xml文件,里面是需要转换的内容
2)一个xslt文件,里面是转换的格式
3)一个java测试类,通过此类将文件进行转换
xml文件和xlst文件以及java代码,

xml文件:
<?xmlversion="1.0"encoding="ISO-8859-1"?>
<?xml-stylesheettype="text/xsl"href="cdcatalog.xsl"?>
<catalog>
<cd>
<title>EmpireBurlesque</title>
<artist>BobDylan</artist>
</cd>
</catalog>
xslt文件:
<?xmlversion="1.0"encoding="ISO-8859-1"?>
<xsl:stylesheetversion="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:templatematch="/">
<html>
<body>
<h2>MyCDCollection</h2>
<tableborder="1">
<trbgcolor="#9acd32">
<th>Title</th>
<th>Artist</th>
</tr>
<xsl:for-eachselect="catalog/cd">
<tr>
<td><xsl:value-ofselect="title"/></td>
<td><xsl:value-ofselect="artist"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
java代码:
packagetest;
importjavax.xml.transform.*;
importjavax.xml.transform.stream.*;
importjava.io.*;

publicclassxslt{
publicstaticvoidmain(Stringargs[]){
//建立transformerFactory对象
TransformerFactoryfactory=TransformerFactory.newInstance();
//以样式表文件输出建立Transformer对象
Transformertransformer=null;
try{
transformer=factory.newTransformer(newStreamSource("cdcatalog.xsl"));
System.out.print(transformer);
}catch(TransformerConfigurationExceptione){
e.printStackTrace();//TochangebodyofcatchstatementuseFile|Settings|FileTemplates.
}
//使用streamsource加载xml文件
StreamSourcexmlsource=newStreamSource("cdcatalog.xml");
//输出streamResult创建与输出文档html文件的关联
StreamResultoutput=null;
ByteArrayOutputStreambaos=newByteArrayOutputStream();
output=newStreamResult(baos);
//调用transformer对那个transform方法生成html文件
//转xml文档
try{
transformer.transform(xmlsource,output);
Stringstr=baos.toString();
System.out.println(str);
}catch(TransformerExceptione){
e.printStackTrace();//TochangebodyofcatchstatementuseFile|Settings|FileTemplates.
}
}
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读