解讀XSL的選擇模式_Xml教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:如何使用XPath入門
      什么是XPath XPath(可擴展路徑) 是給 XSL 轉換[XSLT]和 XPointer [XPointer]的共享功能提供一個共用的句法及語義的結果。XPath的主要的目是用于對 XML 文檔元件尋址。在支持這個主要目的的同時,它也為字符串,數字和布爾的操作提供了基本手段。XPath

      什么是選擇模式

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


      注意,每個xsl文件都需要導入xsl的命名空間,http://www.w3.org/TR/WD-xsl,例如在xml頭聲明之后加入:
      <p xmlns:xsl="http://www.w3.org/TR/WD-xsl">

      1、<xsl:for-each>

      這個語句是逐個(select)選擇某條件,應用條件。例如,有如下數據庫的用戶列表:
       
      <?xml version="1.0" encoding="GB2312"?>
      <Users>
      <User>
      <Name>5do8</Name>
      <ID>1</ID>
      <Professional>.NET,PHP Design</Professional>
      </User>
      <User>
      <Name>cjjer</Name>
      <ID>2</ID>
      <Professional>DataBase Manage</Professional>
      </User>
      </Users>
       

      需要只輸出全部的Name列,這里有兩個問題:
      1:需要把每個User節點下面的數據都選擇,就是需要定位到User節點,我們使用for-each下面的select。
      2:需要選擇Name節點,我們使用value-of下面的select。

      建立xsl文件:
      <?xml version="1.0" encoding="GB2312"?>
      <p xmlns:xsl="http://www.w3.org/TR/WD-xsl">
      <xsl:for-each select="Users">
      <BODY>
      <xsl:for-each select="User">
      <xsl:value-of select="Name" /><hr />
      </xsl:for-each>
      </BODY>
      </xsl:for-each></p>
       

      保存為UserList_for-each.xsl.在xml文件第二行增加:
      <?xml:stylesheet type="text/xsl" href="UserList_for-each.xsl"?>
       

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

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

      2、<xsl:value-of>

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

      例如如上的例子中選擇了
      <xsl:value-of select="Name" />
      就是選擇Name節點的值。

      xsl:sort排序處理

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

      按大小寫排序
      <xsl:sort case-order="upper-first" select="@id"/> 以id為關鍵字按大寫優先排序
      <xsl:sort case-order="lower-first" select="@id"/> 以id為關鍵字按小寫優先排序
      按字母順序排序
      <xsl:sort order="ascending" select="@id "/> 以id為關鍵字按字母升序排序
      <xsl:sort order="descending" select="@id "/> 以id為關鍵字按字母降序排序
      按數據類型排序
      <xsl:sort data-type="text" select="@id"/> 以id為關鍵字按文本類型排序,如對于一組id數據101,2,44,305 來說,排序結果是101,2,305,44
      <xsl:sort data-type="number" select="@id"/> 以id為關鍵字按數據類型排序,上面一組數據的排序結果是2,44,101,305
      另外,還有一種指定排序的方法,就是在前面學生花名冊例中所使用的order-by: <xsl:for-each select="student" order-by="name"> 也可使得輸出學生時按名字排序。

      3、<xsl:xsl:apply-templates>

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

      例如:
      <xsl:apply-template select="Users/User">……</xsl:apply-template>

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

      分享:XSL教程之匹配模式的學習
      xsl:template 元素定義了用于匹配節點的規則(match,其中/匹配整個文檔),在apply-template使用 語法規則為: xsl:template name=name match=pattern mode=mode priority=number !-- Content:(xsl:param*,template) -- /xsl:template 其中: nam

      來源:模板無憂//所屬分類:Xml教程/更新時間:2010-01-06
      相關Xml教程