XSL = XML 样式表
XML 不使用预先定义的标签(我们可以使用任何喜欢的标签名),并且这些标签的意义并不都那么容易被理解。
XSL 可描述如何来显示 XML 文档!
XSL 包括三部分:
XSLT: 一种用于转换 XML 文档的语言。
XPath: 一种用于在 XML 文档中导航的语言。
XSL-FO:一种用于格式化 XML 文档的语言。
什么是 XSLT?
XSLT 指 XSL 转换(XSL Transformations)。
XSLT 是 XSL 中最重要的部分。
XSLT 可将一种 XML 文档转换为另外一种 XML 文档。
XSLT 使用 XPath 在 XML 文档中进行导航。
XPath 是一个 W3C 标准。
正确的样式表声明
把文档声明为 XSL 样式表的根元素是 或 。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
XSLT 元素
<xsl:template>
元素用于构建模板。
match 属性用于关联 XML 元素和模板。match 属性也可用来为整个文档定义模板。match 属性的值是 XPath 表达式(举例,match=”/” 定义整个文档)。
<xsl:sort>
元素用于对结果进行排序。
如需对结果进行排序,只要简单地在 XSL 文件中的 <xsl:for-each>
元素内部添加一个 <xsl:sort>
元素:
<xsl:for-each>
元素可用于选取指定的节点集中的每个 XML 元素。
<xsl:if>
元素用于放置针对 XML 文件内容的条件测试。
<xsl:choose>
元素用于结合 和 来表达多重条件测试。
<xsl:value-of>
元素用于提取某个选定节点的值,并把值添加到转换的输出流中。
元素可把一个模板应用于当前的元素或者当前元素的子节点。
假如我们向 元素添加一个 select 属性,此元素就会仅仅处理与属性值匹配的子元素。我们可以使用 select 属性来规定子节点被处理的顺序。
<xsl:for-each select="catalog/cd">
<xsl:if test="price > 10">
<xsl:sort select="artist"/>
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:for-each>
结果过滤
通过在 元素中添加一个选择属性的判别式,我们也可以过滤从 XML 文件输出的结果。
<xsl:for-each select="catalog/cd[artist='Bob Dylan']">
合法的过滤运算符:
= (等于)
!= (不等于)
< (小于)
> (大于)