站内搜索:     
站点首页破釜学院编程开发XSL教程 → XSL基础教程(三)
正在加载相关信息.....
Web 站内搜索
XSL基础教程(三)
】【打印】【加入收藏】【关闭收藏到新浪ViVi】【收藏到365KEY】 浏览字号:
日期:2004-08-02 人气: 出处:饮水思源站

XSL条件IF:如何让XML解析器有条件地将XML文档转换成HTML。

XSL条件IF
XSL可以用一个IF语句过滤来自XML文档的信息。
在哪里放置IF条件
现在来重新看看你已经看过多次的XML文档:

    <?xml version="1.0"?>
    <CATALOG>
      <CD>
        <TITLE>Empire Burlesque</TITLE>
        <ARTIST>Bob Dylan</ARTIST>
        <COUNTRY>USA</COUNTRY>
        <COMPANY>Columbia</COMPANY>
        <PRICE>10.90</PRICE>
        <YEAR>1985</YEAR>
      </CD>
    .
    .
    .
要想放置一个对文件内容的条件测试if命令,只需要向XSL文档中增加一个xsl:i
f元素,如下:
    <xsl:if match=".[ARTIST='Bob Dylan']">
    ... 一些输出...
    </xsl:if>
现在看一下经过轻微调整的XSL样式表:
    <?xml version='1.0'?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl>
    <xsl:template match="/">
      <html>
      <body>
        <table border="2" bgcolor="yellow">
          <tr>
            <th>Title</th>
            <th>Artist</th>
          </tr>
          <xsl:for-each select="CATALOG/CD">
          <xsl:if match=".[ARTIST='Bob Dylan']">
            <tr>
              <td><xsl:value-of select="TITLE"/></td>
              <td><xsl:value-of select="ARTIST"/></td>
      </tr>
            </xsl:if>
          </xsl:for-each>
        </table>
      </body>
      </html>
    </xsl:template>
    </xsl:stylesheet>
在浏览器中转换
以下是在浏览器中将XML文件转换成HTML所需要的简单代码:

    <html>
    <body>
    <script language="javascript">
    // Load XML
    var xml = new ActiveXObject("Microsoft.XMLDOM")
    xml.async = false
    xml.load("cd_catalog.xml")
    // Load the XSL
    var xsl = new ActiveXObject("Microsoft.XMLDOM")
    xsl.async = false
    xsl.load("cd_catalog_if.xsl")
    // Transform
    document.write(xml.transformNode(xsl))
    </script>
    </body>
    </html>

>>>> 进入论坛交流 <<<<