DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML詳解 >> 了解XSL的選擇模式
了解XSL的選擇模式
編輯:XML詳解     

什麼是選擇模式

  選擇模式語句將數據從XML中提取出來,是一種簡單獲得數據的方法,這幾個標記都有一個select屬性,選取XML中特定的結點名的數據

  注意,每個xsl文件都需要導入xsl的命名空間,http://www.w3.org/TR/WD-xsl,例如在XML頭聲明之後加入:

<pXMLns:xsl="http://www.w3.org/TR/WD-xsl">

  1、<xsl:for-each>

  這個語句是逐個(select)選擇某條件,應用條件。例如,有如下數據庫的用戶列表:

<?XMLversion="1.0"encoding="GB2312"?>
<Users>
  <User>
    <Name>5do8</Name>
    <ID>1</ID>
    <Professional>.Net,PHPDesign</Professional>
  </User>
  <User>
    <Name>cjjer</Name>
    <ID>2</ID>
    <Professional>DataBaseManage</Professional>
  </User>
</Users>

  需要只輸出全部的Name列,這裡有兩個問題:

  1:需要把每個User節點下面的數據都選擇,就是需要定位到User節點,我們使用for-each下面的select。

  2:需要選擇Name節點,我們使用value-of下面的select。

  建立xsl文件:

  

<?XMLversion="1.0"encoding="GB2312"?>
<pXMLns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:for-eachselect="Users">
<BODY>
<xsl:for-eachselect="User">
<xsl:value-ofselect="Name"/><hr/>
</xsl:for-each>
</BODY>
</xsl:for-each></p>

  保存為UserList_for-each.xsl.在XML文件第二行增加:

<?XML:stylesheettype="text/xsl"href="UserList_for-each.xsl"?>

  在IE5+以上的浏覽器中效果可見。

  for-each還支持排序,order-by語句,它的語法是以分號(;)分隔、作為排序標准的列表。在列表元素前添加加號(+)表示按此標記的內容以升序排序,添加減號(-)表示逆序排序。作為一種簡化的表示就是,排序標准列表就是由select規定的標記的子標記的序列,每個標記之間以(;)分隔。

  2、<xsl:value-of>

  value-of是選擇當前節點的值

  例如如上的例子中選擇了

  <xsl:value-ofselect="Name"/>

  就是選擇Name節點的值。

  xsl:sort排序處理

  對於用xsl:for-each或xsl:apply-templates匹配的節點,可使用xsl:sort將所選節點內容進行排序

  按大小寫排序

  <xsl:sortcase-order="upper-first"select="@id"/>以id為關鍵字按大寫優先排序

  <xsl:sortcase-order="lower-first"select="@id"/>以id為關鍵字按小寫優先排序

  按字母順序排序

  <xsl:sortorder="ascending"select="@id"/>以id為關鍵字按字母升序排序

  <xsl:sortorder="descending"select="@id"/>以id為關鍵字按字母降序排序

  按數據類型排序

  <xsl:sortdata-type="text"select="@id"/>以id為關鍵字按文本類型排序,如對於一組id數據101,2,44,305來說,排序結果是101,2,305,44

  <xsl:sortdata-type="number"select="@id"/>以id為關鍵字按數據類型排序,上面一組數據的排序結果是2,44,101,305

  另外,還有一種指定排序的方法,就是在前面學生花名冊例中所使用的order-by:<xsl:for-eachselect="student"order-by="name">也可使得輸出學生時按名字排序。

  3、<xsl:xsl:apply-templates>

  xsl:apply-templates是應用已經定義的模板

  例如:

  <xsl:apply-templateselect="Users/User">……</xsl:apply-template>

  如上三者,都有共同的使用方法,就是必須要Select語句選擇,關於Select語句的語法,就是XPath,關於XPath的使用規范,將在下一講中詳細描述。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved