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

XSL过滤器:将XML文档转换成HTML之前,如何用XML解析器过滤XML文档。

XSL过滤器查询
XSL可以用来过滤一个 XML 文件。
在哪里放置过滤器信息
现在重新看看你以前已经看过多次的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>
    .
    .
    .
要过滤XML文件,只需要为XSL文件中的for-each元素的选择属性增加一个过滤器,如下:
<xsl:for-each select="CATALOG/CD[ARTIST='Bob Dylan']">

合法的过滤器操作符是:

    = 等于
    != 不等于
    < 小于
    > 大于
现在看看经过轻微调整的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[ARTIST='Bob Dylan']">
       <tr>
        <td><xsl:value-of select="TITLE"/></td>
        <td><xsl:value-of select="ARTIST"/></td>
       </tr>
       </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_filter.xsl")
    // Transform
    document.write(xml.transformNode(xsl))
    </script>
    </body>
    </html>

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