XML—— XSL 转换
【0】README0.1) 本文文字描述转自 core java volume 2 , 旨在理解 XML—— XSL 转换 的基础知识 ; 【1】XML—— XSL 转换基础相关1)XSL转换(XSLT)机制定义:可以将XML 文档转换为其他格式的规则。(干货——XSLT的转换和作用)
2)你需要提供 XSLT 样式表, 它描述了 XML 文档向某种格式转换的规则。 XSLT 处理器将读入XML 文档和这个样式表, 并产生所要的输出。(见下图); 3)看个荔枝(吧 XML 文件转换为 HTML文件)
<staff>
<employee>
<name>a</name>
<salary>1</salary>
<hiredate year="1999" month="12" day="15" />
</employee>
......
</staff>
<table>
<tr>
<td>a</td> <td>1</td><td>1999-12-15</td>
</tr>
</table>
4)具有转换模板的样式表形式如下: <?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transformation="1.0">
<xsl: output method="html">
template1
template2
......
</xsl:stylesheet>
<xsl: template match="/staff/employee">
<tr><xsl:apply-templates></tr>
</xsl: template>
5)XSLT 处理器由检查根元素开始其处理过程。
6)看个荔枝: 下面是一个用来转换雇员记录文件中的name 节点的模板; <xsl: template match="/staff/employee/name">
<td><xsl: apply-templates></td>
</xsl: template>
7)如果想把 属性值复制到输出中去, 就必须做一些复杂操作,如下: <xsl: template match="/staff/employee/hiredate">
<td><xsl: value-of select="@year">-<xsl: value-of select="@month">-<xsl: value-of select="@day"></td>
<xsl: template />
字符串<td>;
year属性值;
一个连字符;
month属性值;
一个连字符;
day属性值;
一个连字符;
字符串</td>;
8)在java 平台下产生 XML 的转换及其简单,只需为每个样式表设置一个转换器工厂, 然后得到一个转换器对象, 并告诉它把一个源转换成结果; File stylesheet = new File(filename);
StreamSource styleSource= new StreamSource(stylesheet);
Transformer t = TransformerFactory.newInstance().newTransformer(styleSource);
t.transform(source,result);
DOMSource SAXSource StAXSource StreamSource
t.transform(new SAXSource(new EmployeeReader(),new InputSource(new FileInputStream(filename))),result);
DOMResult SAXResult StreamResult
Document doc = builder.newDocument();
t.transform(source,new DOMResult(doc));
t.transform(source,new StreamResult(file));
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |