这段时间用到HTML,XSL,XML,先把XSL语言大概看了一下,
W3School是一个很好的网站,非常值得收藏,总结了XSL的一些基础知识,详细的都可以在
这里找到。
XSL 包括三部分:
XSLT:用于 转换 XML 文档的语言。
XPath:用于在 XML 文档中 导航的语言。
XSL-FO:用于 格式化 XML 文档的语言。
XSLT = XSL 转换(XSL Transformations)。
XSLT 是 XSL 中最重要的部分。
XSLT 用于将一种 XML 文档转换为另外一种 XML 文档,或者可被浏览器识别的其他类型的文档,比如 HTML 和 XHTML。通常,XSLT 是通过把每个 XML 元素转换为 (X)HTML 元素来完成这项工作的。
XSLT 使用 XPath 在 XML 文档中查找信息。XPath 被用来通过元素和属性在 XML 文档中进行导航。
match 属性用于关联 XML 元素和模板。match 属性也可用来为整个文档定义模板。match 属性的值是 XPath 表达式(举例,match="/" 定义整个文档)。如下所示:
Title Artist
. .
此例的缺点:数据没有从 XML 文档被拷贝到输出结果(表格第二行中只是两个点))。
Title Artist
Jay Jay Chou
select 属性的值是一个XPath表达式,此表达式的类似于文件系统。
此例的缺点:仅仅只有一行数据从XML文档被拷贝到输出结果
= 等于
!= 不等于
< 小于
> 大于
如果需要放置针对XML文件内容的条件测试,请向XSL文档添加<xsl:if>元素。语法如下所示:
XSL 指扩展样式表语言(EXtensible Stylesheet Language)。
发展 XSL 的 原因是:存在着对于基于 XML 的样式表语言的需求。XSL 包括三部分:
XSLT:用于 转换 XML 文档的语言。
XPath:用于在 XML 文档中 导航的语言。
XSL-FO:用于 格式化 XML 文档的语言。
XSLT = XSL 转换(XSL Transformations)。
XSLT 是 XSL 中最重要的部分。
XSLT 用于将一种 XML 文档转换为另外一种 XML 文档,或者可被浏览器识别的其他类型的文档,比如 HTML 和 XHTML。通常,XSLT 是通过把每个 XML 元素转换为 (X)HTML 元素来完成这项工作的。
XSLT 使用 XPath 在 XML 文档中查找信息。XPath 被用来通过元素和属性在 XML 文档中进行导航。
<xsl:template> 元素
<xsl:template> 元素用于构建模板。match 属性用于关联 XML 元素和模板。match 属性也可用来为整个文档定义模板。match 属性的值是 XPath 表达式(举例,match="/" 定义整个文档)。如下所示:
<xsl:template match="/">
<html>
<body>
<table border="1">
<tr>
<th>Title</th>
<th>Artist</th>
</tr>
<tr>
<td>.</td>
<td>.</td>
</tr>
</table>
</body>
</html>
</xsl:template>
结果如下:
Title Artist
. .
此例的缺点:数据没有从 XML 文档被拷贝到输出结果(表格第二行中只是两个点))。
<xsl:value-of> 元素
<xsl:value-of> 元素用于提取某个选定节点的值,并把值添加到转换的输出流中。如下所示:<tr>
<td><xsl:value-of select="C/cd/title"/></td>
<td><xsl:value-of select="C/cd/artist"/></td>
</tr>
结果如下:
Title Artist
Jay Jay Chou
select 属性的值是一个XPath表达式,此表达式的类似于文件系统。
此例的缺点:仅仅只有一行数据从XML文档被拷贝到输出结果
<xsl:for-each> 元素
<xsl:for-each> 元素可用于选取指定的节点集中的每个 XML 元素。如下所示:<pre name="code" class="html"><xsl:for-each select="C/cd">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:for-each>
这个代码可以循环遍历XML元素,并显示所有记录。此外,如果在<xsl:for-each>元素中添加一个选择属性的判别式,可以过滤从XML文件输出的结果。如下所示:
<xsl:for-each select="C/cd[title='Fantasy']">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:for-each>
合法的过滤运算符:
= 等于
!= 不等于
< 小于
> 大于
<xsl:sort> 元素
<xsl:sort> 元素用于对结果进行排序。如下所示:<xsl:for-each select="C/cd/">
<xsl:sort select="artist"/>
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:for-each>
其中,select属性指示需要排序的XML元素。
<xsl:if> 元素
<xsl:if> 元素用于放置针对XML文件内容的条件测试。如果需要放置针对XML文件内容的条件测试,请向XSL文档添加<xsl:if>元素。语法如下所示:
<xsl:if test="expression">
...
...如果条件成立则输出
...
</xsl:if>
输出CD中price大于10的元素:
<xsl:for-each select="C/cd">
<xsl:if test="price > 10">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:if>
</xsl:for-each>
必须的test属性的值包含了需要求值的表达式。
<xsl:choose> 元素
<xsl:choose> 元素用于结合 <xsl:when> 和 <xsl:otherwise> 来表达多重条件测试。语法如下所示:<xsl:choose>
<xsl:when test="expression">
...输出...
</xsl:when>
<xsl:otherwise>
...输出...
</xsl:otherwise>
</xsl:choose>
如果需要插入针对XML文件的多重条件测试,请向XSL文件添加 <xsl:choose>、<xsl:when>以及<xsl:otherwise>。如下所示:
<td><xsl:value-of select="title"/></td>
<xsl:choose>
<xsl:when test="price > 10">
<td bgcolor="#ff00ff"><xsl:value-of select="artist"/></td>
</xsl:when>
<xsl:when test="price > 9">
<td bgcolor="#cccccc"><xsl:value-of select="artist"/></td>
</xsl:when>
<xsl:otherwise>
<td><xsl:value-of select="artist"/></td>
</xsl:otherwise>
</xsl:choose>