现在的位置: 首页 > 综合 > 正文

xsl 学习笔记

2014年07月14日 ⁄ 综合 ⁄ 共 1866字 ⁄ 字号 评论关闭

1 XSL 三部分:

XSLT    一种用于转换 XML 文档的语言( 一种用于将 XML 文档转换为 XHTML 文档或其他 XML 文档的语言 )( XSLT 把 XML 源树转换为 XML 结果树 )。
XPath 一种用于在 XML 文档中导航的语言。
XSL-FO 一种用于格式化 XML 文档的语言。

2 把 XSL 样式表链接到 XML 文档

Js代码 复制代码

  1. <?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?>  

<?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?>

3 样式表声明

Js代码 复制代码

  1. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

Js代码 复制代码

  1. <xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  

<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

4 <xsl:template> 元素用于构建模版

xstl常见的“外围”这样写:

Js代码 复制代码

  1. <xsl:stylesheet vesion="1.0"   xmlns:xsl="">   
  2. </xsl:stylesheet>  

<xsl:stylesheet vesion="1.0" xmlns:xsl=""></xsl:stylesheet>

5 <xsl:value-of> 元素用于提取某个选定节点的值。

<xsl:for-each> 元素允许您在 XSLT 中进行循环。

<xsl:sort> 元素用于对结果进行排序

常见写法:

Java代码 复制代码

  1. <xsl:template match="/">   
  2. <xsl:for-each select="a">   
  3. <tr>   
  4. <td>   
  5. <xsl:value-of select="b">   
  6. </td>   
  7. </tr>   
  8. <xsl:for-each>   
  9. </xsl:template>  

<xsl:template match="/"> <xsl:for-each select="a"><tr><td><xsl:value-of select="b"></td></tr><xsl:for-each></xsl:template>

6 另外的一些选择语法

<xsl:if> 元素用于放置针对 XML 文件内容的条件测试。

<xsl:choose> 元素用于结合 <xsl:when> 和 <xsl:otherwise> 来表达多重条件测试。

例如

Java代码 复制代码

  1. <xsl:if test="...">  

<xsl:if test="...">

Js代码 复制代码

  1. <xsl:choose>   
  2. <xsl:when test="...">   
  3. </xsl:when>   
  4. <xsl:when test="...">   
  5. </xsl:when>   
  6. </xsl:choose>  

<xsl:choose><xsl:when test="..."></xsl:when><xsl:when test="..."></xsl:when></xsl:choose>

7 <xsl:apply-templates> 元素可把一个模板应用于当前的元素或者当前元素的子节点。

8 把xslt附在xsl上的办法:

a 在xml里用

Js代码 复制代码

  1. type="text/xsl" href="cdcatalog.xsl"  

type="text/xsl" href="cdcatalog.xsl"

b 在客户端用javascript(这种方法跨浏览器上更通用)

Java代码 复制代码

  1. <script>   
  2. xml.load("a.xml");   
  3. xsl.load("a.sxl");   
  4. document.write(xml.transformNode(xsl));   
  5. </script>  

<script>xml.load("a.xml");xsl.load("a.sxl");document.write(xml.transformNode(xsl));</script>

c 也可以在服务器端就完成转化,同样可以实现跨浏览器

来源:?http://gatusso52.javaeye.com/blog/369082

抱歉!评论已关闭.