使用XSTL格式化XML xml格式化工具

要创建XML的不同格式,就需要使用被称为XSTL(可扩展样式语言转换,extensible styling languagetransformations)的技术。XSTL用于将XML文档转换为另一种格式,如HTML、文本、甚至是另一级别的XML。

XSTL是一种功能强大的语言,而且XSTL和XML是100%兼容的,那么可以在java中使用诸如DOM、JDOM或SAX等技术来处理XSTL文档。

第一步:生成XML源

这里使用links.xml,如下:

<?xml version="1.0" encoding="ISO-8859-1"standalone="yes"?>
<links>
<link>
<text>Wroxpublishing</text>
<urlnewWindow="no">http://www.wrox.com</url>
<author>Wrox</author>
<describe>Checkout Wrox for morebooks</describe>
<date>
<day>1</day>
<month>1</month>
<year>2001</year>
</date>
</link>
<link>
<text>JspInsider</text>
<urlnewWindow="no">http://www.jspinsider.com</url>
<author>Jspinsider</author>
<describe>AJsp Information</describe>
<date>
<day>2</day>
<month>1</month>
<year>2001</year>
</date>
</link>
</links>

第二步:XSTL文件

当要转换XML文件,需要使用一些XSTL文档,此时需要为每一种输出格式准备一种XSLT文档。

links_html.xsl是为HTML准备的,内容如下:

<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html"indent="yes"/>
<xsl:template match="links">
<html>
<head>
<title>Funwith xsl</title>
</head>
<body>
<tablecellspacing="0" width="100%">
<tr>
<td align="center">
<tablewidth="95%">
<xsl:apply-templatesselect="link"/>
</table>
</td>
</tr>
使用XSTL格式化XML xml格式化工具
</table>
</body>
</html>
</xsl:template>
<xsl:template match="link">
<tr>
<td>
<tablecellpadding="0" cellspacing="0" width="100%">
<tr>
<td>
<Axsl:use-attribute-sets="a"><xsl:value-ofselect="text"/></A><br/>
</td>
</tr>
<tr>
<td>
<xsl:value-ofselect="author"/><br/>
</td>
</tr>
<tr>
<td>
<xsl:value-ofselect="describe"/><br/>
</td>
</tr>
</table>
</td>
</tr>
</xsl:template>
<xsl:attribute-set name="a">
<xsl:attributename="href"><xsl:value-ofselect="url"></xsl:value-of></xsl:attribute>
</xsl:attribute-set>
</xsl:stylesheet>

XSTL和其支持的标准形成了一个很大而且丰富的环境,但是要全面掌握XSTL需要花费一定的时间。

第三部:创建源对象

源对象用于描述XML数据,这些数据将被用于创建最终的XSTL格式输出。源与XSLT的结合将在JAXP中被转换实现。XSLT会定义转换要完成的工作。JAXP将按照XSLT文档所定义的内容进行转换。

StreamSource

StreamSource是在源中使用XML文件或字符串时所需的对象。

StreamSource ss=new StreamSource(newFile("your_xml_file.xml"));

DOMSource

DOMSource用来描述DOM对象的一个节点。节点可以小至数据元素,也可以是DOM所描述的整个文档。通常可通过创建DOMSource来描述DOM的某一个部分,这些部分需要被修改,或者需要对其进行操作。一旦创建了DOMSource,就可以使用它来实现转换。

DocumentBuilderFactorydbf=DocumentBuilderFactory.newInstance();

DocumentBuilder db=dbf.newDocumentBuilder();

Document d=db.parse("your_xml_file.xml");

DOMSource ds=new DOMSource(d);

SAXSource

SAXSource对象代表着SAX类型的源。SAXSource对象可以被组织成一个XMLReader对象,或者任何InputSource对象。

SAXSource ss=new SAXSource(new InputSource(newFileReader("your_xml_file.xml")));

创建StreamSource

使用由links.xml和links_html.xsl构成两个StreamSource对象

StreamSource xml=new StreamSource(newFile("c:/xml/links.xml"));

StreamSource xsl=new StreamSource(newFile("c:/xml/links_html.xsl"));

第四步:创建结果对象

结果对象是JAXP的转换输出,结果不必一定以XML格式,可是HTML、XML、WML等。有三个对象使用result接口:StreamResult、DOMResult、SAXResult。

StreamResult将获取流转换结果。通常当需要将转换结果写入文件,或者JSP需要输出流时,要使用它。

写入文件:StreamResutl sr=new StreamResult(newFile("result.out"));

写入JSP:StreamResutl sr=new StreamResult(out);

DOMResult获取DOM树对象中转换结果。然后该对象还可以被作为Document对象进一步被处理。

DocumentBuilderFactorydbf=DocumentBuilderFactory.newInstance();

DocumentBuilder db=dbf.newDocumentBuilder();

Document d=db.newDocument();

DOMResult dr=new DOMResult(d);

SAXResult在对象中用于保存JAXP转换,该对象通过实现ContentHandler接口来处理SAX事件。

SAXResult sr=new SAXResult(newDefaultHandle());//实际中可以使用自定义对象来接收SAX事件

第五步:转换数据

<@page

import="javax.xml.parses.*,org.w3c.dom.*,javax.xml.transform.*,javax.xml.transform.stream.*,java.io.*"%>

<%

StreamSource xml=new StreamSource(newFile("c:/xml/links.xml"));

StreamSource xsl=new StreamSource(newFile("c:/xml/links_html.xsl"));

StreamResult result=new StreamResult(out);

TransformerFactorytFactory=TransformerFactory.newInstance();

Transfromer transformer=tFactory.newTransformer(xsl);

transformer.transform(xml,result);

%>

  

爱华网本文地址 » http://www.413yy.cn/a/25101017/352617.html

更多阅读

u盘写保护怎么格式化 格式化u盘提示有写保护

u盘写保护怎么格式化——简介u盘写保护无法格式化怎么办—网友说他的lenovo 8G U盘今天出现了故障,U盘上的文件能读出来,但却写不进去,总是提示有写保护。换到其他电脑上,仍无法写进去,仍是同样情况。u盘写保护怎么格式化——工具/原料

ps钢笔工具画出的路径使用画笔来描边 钢笔工具的描边路径

ps钢笔工具画出的路径使用画笔来描边——简介在PhotoShop中,我们都知道,钢笔工具可以直接画出路径。画出来的路径,如果不配合其它工具来使用,是毫无意义的!  通常情况下,钢笔工具的路径,常常需要描边,让描出来的边沿着路径来显示。下面,就

Win7自带备份还原工具的使用教程 一键备份还原工具

Win7自带备份还原工具的使用教程——简介平时养成备份系统的习惯很重要,不要等到系统快要崩溃或者出现问题的时候才想到了系统备份与还原。现在的Win7系统自带有备份还原工具,使用方便,下面小编将与大家分享下Win7自带备份还原工具使用

手机sd卡怎么格式化 手机的sd卡如何格式化

手机sd卡怎么格式化——简介虽然现在很多手机都已经不再使用SD卡了,或者准确来说是很多手机的内置存储已经很大,不再需要外置的TF卡了,但是TF卡的作用还是很多的,本文教你怎么格式化手机的TF卡。手机sd卡怎么格式化——工具/原料

声明:《使用XSTL格式化XML xml格式化工具》为网友森鹿姑娘分享!如侵犯到您的合法权益请联系我们删除