作者:阿里西西  文章来源:http://www.alixixi.com/  更新时间:2005-12-15
1.通過XSL來顯示XML的一般方法
==============================
XML.XML
----------------------------------------------------------
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="1.xsl"?><!--连接XSL的方法,是不是和连接CSS很像啊??呵.-->
<persons>
  <person>
      <name> lisongtaow </name>
     
      <age>25</age>
      <tel>66666666</tel>
  </person>
  <person>
      <name> lisongtao1</name>
      <age>26</age>
      <tel>66666667</tel>
  </person>  
  <person>
      <name>lisongtao3</name>
      <age>28</age>
      <tel>66666669</tel>
  </person>
</persons>

-----------------------------------------------------------------------
1.xsl
----------------------------------------------------------------------
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
    <html>
     <body>
       <center>
       <h2>the notepad</h2>
       <table border="1">
           <tr>
                <td>name</td>
                <td>age</td>
                <td>tel</td>
           </tr>
      <xsl:for-each select="persons/person">
           <tr>
                <td><xsl:value-of select="name"/></td>
                <td><xsl:value-of select="age"/></td>
                <td><xsl:value-of select="tel"/></td>
           </tr>
      </xsl:for-each>

<!--循环输出语块,其中"persons/person"代表着路径-->
       </table>
       </center>
     </body>
    </html>
</xsl:template>
</xsl:stylesheet>


=========================================================

做完这个例子先总结一下:
在XSL的定义方法其实是一个HTML的全显示格式.我们可以用DW直观的编辑好.再加入代码.
这里XSL我们可以理解成为一个模板.
其主要的定义方法有一个规则:
以后我们再写XSL时就可以把这东东COPY出来了.不用老是对着书打.呵...
--------------------------------------------------------------
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
 <xsl:template match="/">
 
</xsl:template>
</xsl:stylesheet>
-----------------------------------------------------------


============================================================

2.输出某节点下的所有内容..

上一例子我们成功地用XSL输出了XML里面数据.
如果我们只要输出某相同节点其下的内容.我们可以这样做.
=======================
1.xml
要求:输出XSL的"persons/person/tel/hometel"下面的所有内容.这里"person"可以是多层
--------------------------------------------------------
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="2.xsl"?>
<persons>
  <person>
      <name>lisongtao</name>
      <age>25</age>
      <tel><hometel>
           <tel>64456787</tel>
           <childhometel>64456785</childhometel>
          </hometel>
          <offtel>44442222</offtel>
          <worktel>3333333</worktel>
      </tel>
 </person>
 <person>
      <name>liwei</name>
      <age>25</age>
      <tel><hometel>
           <tel>66545434</tel>
           <childhometel>65433333</childhometel>
          </hometel>
          <offtel>64442222</offtel>
          <worktel>6333333</worktel>
      </tel>
 </person>
 <person>
      <name>zhangxue</name>
      <age>25</age>
      <tel><hometel>
          <tel>84343434</tel>
          <childhometel>8333333</childhometel>
          </hometel>
          <offtel>84442222</offtel>
          <worktel>8333333</worktel>
      </tel>
 </person>
 <person>
      <name>wure</name>
      <age>26</age>
      <tel>66666667</tel>
 </person>  
</persons>
================================
2.xsl
-----------------------------------------------------------
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
    <html>
     <body>
       <center>
       <h2>the notepad</h2>
       <table border="1">
           <tr>
                <td>name</td>
           </tr>
      <xsl:for-each select="persons/person/tel/hometel/*">
           <tr>
                <td><xsl:value-of select="."/></td>
            </tr>
      </xsl:for-each>

<!--注意FOR-EACH的SELECT路径.然后用value-OF输出全部所要求的节点内容-->
       </table>
       </center>
     </body>
    </html>
</xsl:template>
</xsl:stylesheet>


==========================================================

用XSL让XML文件使用到节点属性的搜索功能
xml.xml
---------------------------------------------------------------------------------------
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/xsl" href="xsl.xsl"?>
<students>
<student id="98789">
    <name>廖西</name>
    <sex>女</sex>
    <birthday type="阳历">1987.2</birthday>
    <phone>1303456787</phone>
    <skill>唱歌</skill>
    <dd>asdf
    <ee>asdf</ee></dd>
    <list>asdf</list>
</student>
<student id="98788">
    <name>小记</name>
    <sex>女</sex>
    <birthday>1975.6</birthday>
    <phone>13901145678</phone>
    <skill>爬山</skill>
</student>
<student id="98785">
    <name>江南</name>
    <sex>女</sex>
    <birthday>1978.8</birthday>
    <phone>64576786</phone>
    <skill>网络</skill>
</student>
<student>
    <name>小红</name>
    <sex>男</sex>
    <birthday>1976.2</birthday>
    <phone>62775466</phone>
    <skill>网络</skill>
    <skill>书法</skill>
</student>
</students>
--------------------------------------------------------------------
xsl.xsl
---------------------------------------------------------------
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<center> <h1>学号是"98789"的学生的生日是:<xsl:value-of select="/students/student[@id='98789']/birthday"/></h1></center>
 </xsl:template>
</xsl:stylesheet>

  • 上一篇:
  • 下一篇:
网友评论
相关搜索
阿里西西Baidu.com搜索