关于利用xstl将xml转换成xml或html

最近项目上用到了xstl,看了几天小有收获。XSTL(extensiblestyling language transformation ):最主要的功能是将xml转换为html或其他格式的文件,其是一种格式制定工具。以下是个小例子,将xml转换成需要格式的xml,代码如下:

p1.xml 文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<list>
<lqx>
<name>lqx</name>
<age>20</age>
<borth>2012-11-30 13:22:09.78 CST</borth>
</lqx>
<lqx>
<name>yl</name>
</lqx>
</list>

d1.xstl内容

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<EMPS>
<EMP>
<xsl:for-each select="//lqx">
<EMP__NAME><xsl:value-of select="name"/></EMP__NAME>
<EMP__AGE><xsl:value-of select="age"/></EMP__AGE>
<EMP__BORTH><xsl:value-of select="borth"/></EMP__BORTH>
</xsl:for-each>
</EMP>
</EMPS>
</xsl:template>
</xsl:stylesheet>

需要用到的java程序如下 :

public void convert(){

StreamSource xml=new StreamSource(new File("d:/p1.xml"));//源文件
StreamSource xsl=new StreamSource(new File("d:/d1.xsl"));//xsl
StreamResult result=new StreamResult(new File("d:/h.xml"));//目标文件
TransformerFactory tFactoy=TransformerFactory.newInstance();
Transformer transformer=tFactoy.newTransformer(xsl);
transformer.transform(xml,result);
}
经过转换得到所需格式的xml,但很乱,全部连在一起,在网上查到用<xsl:text> &#x0A;</xsl:text>可在显示xml时达到换行的效果,所以改xstl如下:<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<xsl:text> </xsl:text>
<EMPS>

<xsl:text> </xsl:text>

<EMP><xsl:text> </xsl:text>

<xsl:for-each select="//lqx">

<EMP__NAME><xsl:value-of select="name"/></EMP__NAME><xsl:text> </xsl:text>

<EMP__AGE><xsl:value-of select="age"/></EMP__AGE><xsl:text> </xsl:text>

<EMP__BORTH><xsl:value-of select="borth"/></EMP__BORTH><xsl:text> </xsl:text>

</xsl:for-each>
</EMP>
<xsl:text> </xsl:text>


</EMPS>

</xsl:template>

</xsl:stylesheet>经新的xstl再次转换后,达到如下效果:

<?xml version="1.0" encoding="UTF-8"?>
<EMPS>
<EMP>
<EMP__NAME>lqx</EMP__NAME>
<EMP__AGE>20</EMP__AGE>
<EMP__BORTH>2012-11-30 13:22:09.78 CST</EMP__BORTH>
<EMP__NAME>yl</EMP__NAME>
<EMP__AGE/>
<EMP__BORTH/>
</EMP>
</EMPS>
总结:xstl和xml完全兼容所以对xml的一些处理,也适应于xslt,xstl最常用到的是xml向html的转换,用法和对xml的转换类似,毕竟xml的最初的设计目标也是为了代替html,所以能转成xml,当然html也不在话下
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值