成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

XSLT表達式處理技術

2010-08-28 10:47:36來源:西部e網作者:

  我們將選擇你已經在以前的信息里了解的各種各樣的功能和表達方式并且描述怎樣把他們嵌入在處理指令的順序里面。通常,這發生在一些標記的元素或者其他標記的元素的范圍內,因為這些元素在XSLT里履行了特定的角色的功能,和在很多編程語言內的那些函數或者子程序調用所起到的作用相同。 實際上,在特定的上下文中,你將發現XSLT中的大多數反復和遞歸結構都靠岸工作的——在接下來的講解中將會了解到。

  操縱和處理特定的文檔節點

  使用<xsl:call-template>來處理一些節點而不是現在的文檔節點,最迅速的技術是將元素<xsl:call-template>置于一個<xsl:for-each>元素內部,但是你也可以為一個目標模板提供一個唯一的節點名字,并且使用<xsl:apply-template>元素來應用于一些具體的節點。但是,"為每一個"建造, 是完全反復并且在特定的情形里更有意義的,在這些特定的情況下,在一份文檔或者結果樹里的全部節點無論如何都需要被處理。 你將發現這種方法的例子,有人在Michael Kay的XSLT 程序員參考里完全地詳細說明。他也解釋一種靈巧的技術,該技術描述了在一個<xsl:variable>元素里面調用<xsl:call-template>的方法。在<xsl:variable>元素里,一個簡單的從結果樹到字符行為的轉換就好像<xsl:call-template>元素正從它的調用中返回的一個結果。

  這類過程的結構可能被如下的方式說明, 在下面已給在方括號內的裝入的字符值的模版在一個變量元素內被調用。

<!-- start with template definition, proceed to variable
     element -->
<xsl:template name="bracketit">
  <xsl:param name="string" />
  <xsl:value-of select="concat("'[', $string, ']')"/>
</xsl:template>

<xsl:variable name="cite-in-brackets">
  <xsl:call-template name="bracketit"/>
    <xsl:with-param name="string" select="@cite"/>
  </xsl:call-template>
</xsl:variable>

  如果cite屬性的值是Horn79,那么變量cite-in-brackets 的結果值為 [Horn79 ].

  使用遞推處理項目列表

  XSLT沒有像使用在傳統的編程語言里的用來處理具體的計數行為的計數器一樣的自動增加的變量,也不支持傳統語言中的有條件的循環結構,例如while, for, 或者until 。 但是XSLT確實支持遞推,提供一種方便的方法達到相同的目的。這個過程的這種方法導致了遞歸函數調用的建立, 這里功能接連不斷被用于在一個列表中的第一個節點或者一個字符串里面的第一個非空節點, 并且功能也被適用于列表節點或者字符串的剩余部分——即在帶有第一個要素或者字符順序從它的內容除去后剩下的部分。 對每種類型的數據來說,處理會一直進行,直到列表或者字符串是空的的時候,即當不再有節點出現或者非空的字符存在在剩余的部分的時候。在他的書名為Mastering XSLT 的Sybex書中,Chuck White 指出XSLT 該方法是"重復每一個命名了的表達式的實例的結果片段。"

  管理有條件處理

   <xsl:choose> 和<xsl:when> 元素允許可能需要多個選擇的條件轉移;一個<xsl:otherwise>元素甚至允許明確處理那些沒有通過確定的具體的測試的項目。 那些基本句法提供一個看起來很象典型的具有特定的嵌套的if-then-else語句的構造結構。White清楚地說明了下面的這些在Mastering XSLT的語句在去除了實際的賦值或者限制之后的基本句法。

<xsl:choose>
  <xsl:when test="expression">
     <!-- processing statements -->
  </xsl:when>
  <xsl:otherwise>
     <!-- processing statements -->
  </xsl:otherwise>
</xsl:choose>

  鑒于XSLT 如此容易支持的各種各樣的技術,這使得你可以相當容易的構建你自己的處理在遍歷,遞推和有條件的測試技術方面的例子的文檔。 你也能再訪XSLT的指導,來獲得更多的插圖和例子,或者也可以翻閱更精心制作和冗長的例子的Sal Mangano的XSLT Cookbook (O'Reilly, 2003),那些例子你都能直接的在你的應用中輕松的導入和選擇。

關鍵詞:XSLT

贊助商鏈接:

主站蜘蛛池模板: 桦川县| 寻甸| 祁连县| 墨脱县| 桦南县| 天全县| 东至县| 科技| 峨眉山市| 加查县| 疏勒县| 武强县| 河间市| 彩票| 祁东县| 潢川县| 响水县| 城步| 余干县| 广西| 资中县| 龙门县| 茌平县| 马山县| 崇礼县| 丹寨县| 夏邑县| 林西县| 汉中市| 吴桥县| 镇雄县| 肥东县| 桐城市| 常德市| 丰镇市| 甘德县| 寻甸| 自贡市| 宣城市| 加查县| 蓬莱市|