• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 47, 文章 - 10, 評論 - 8, 引用 - 0
            數據加載中……

            跟我學XSL(七)——XSL函數一

              本期學習XSL樣式方法,即可用于XSL元素<xsl:for-each>、<xsl:value-of>、<xsl:template>的select屬性、<xsl:apply-templates>的match屬性、<xsl:if>、<xsl:when>的test屬性中,對元素的范圍進行篩選,從而提供更大的靈活性。


              XML與DHTML(動態HTML)一樣,這些節點都是一個個對象,而且這些對象都是有層次的,從根節點開始構成一顆層次清淅的樹狀結構,這就形成了文檔對象模型DOM(Document Object Model),通過對象的屬性、方法來達到訪問控制XML節點的目的。


              我們這里不打算就XML的DOM逐一詳細闡述,因為這完全可以寫成一個篇幅較多的教程,我們先就一些常見的方法作一些討論,以期對DOM的對象方法有一個大致的了解。

              注:從本期開始,所有示例不再提供完整源代碼,如有不明白之處,請仔細閱讀前面七期、并動手練手。

              一、end()

              含義:返回集合中最后一個元素。

              示例:輸出最后一份簡歷

              假定XML文件格式為:

            ……<resume>…</resume>……<resume>…</resume>……

              相應XSL文件內容為:

            <xsl:for-each?select="resume[end()]">……</xsl:for-each>
              或:
            <xsl:templates?match="resume[end()]">……</xsl:templates>
              或:
            <xsl:apply-template?select="resume[end()]">……</xsl:apply-template>

              二、index()

              含義:返回該元素在集合中的位置,返回值是一整數,其中第一個元素返回0。

              示例:返回前面三份簡歷。

            resume[index()$le$3]

              注意:index()是與父元素相關的,請看下例:

            <x>
            <y/>
            <y/>
            </x>
            <x>
            <y/>
            <y/>
            </x>

              返回所有<x>中的第一個<y>

            x/y[index()=0] 或x/y[0]

              三、nodeName()

              含義:返回元素的名字,即標記名。

              示例:選擇任意元素,假如其名字(即標記名)等于"name":

            *[nodeName()='name'] 或 *[name]

              四、number()

              含義:將值轉換為數值形式,如果不是數值則返回空,要求參數。

              示例:年齡(age)小于30歲的人的簡歷(resume):

            resume[number(age)$lt$30] 或 resume[age$lt$30]

              五、nodeType()

              含義:返回結點類型,結果為是數值。以下是返回值列表:
            r_xsl_12.JPG

              六、value()

              含義:返回元素或屬性的值。

              示例:value()是元素或屬性的缺省方法,以下表示是等價:

            name!value()="NAME" 與 name="NAME"

            @attr="attribute_value" 與 @attr="attribute_value"

              注:@是屬性前綴,@attr表示是屬性attr

              七、attribute()

              含義:返回所有屬性結點的集合,等價于"@*"。

              示例:尋找所有的resume元素,滿足條件至少有一個屬性的值為"ABC":

            resume[$any$attribute()='ABC'] 或 resume[$any$@*='ABC']

              尋找所有的resume元素,滿足條件至少有一個子元素有一個屬性的值為"ABC":

            resume[$any$*/attribute()='ABC'] 或 resume[$any$*/@*='ABC']

              八、comment()

              含義:返回所有注釋結點。

              示例:

            resume[$any$comment()='禹希初的簡歷']

              表示尋找含有注釋語句:<!--禹希初的簡歷-->的<resume>元素。

              九、cdata()

              含義:返回所有CDATA類型的結點的集合。

              示例:

            resume[$any$cdata()='禹希初的簡歷']

              表示尋找含有下述語句(必須是直接子結點)<![CDATA[禹希初的簡歷]]>的<resume>元素。

              十、node()

              含義:返回當前上下文環境中除根結點和屬性結點以外的所有結點的集合,等價于:

            "*|pi()|comment()|text()"

              示例:尋找所有元素resume,其最后一個結點的名字為"skill":

            resume[node()[end()]!nodeName()='skill']

              尋找所有resume元素的第一個結點:resume/node()[0]。

              十一、textnode()

              含義:返回所有文本類型的結點的集合。

              示例:尋找每一個p元素的第二個文本結點:

            p/textnode(1) 或 p!textnode(1)

              十二、text()

              含義:返回所有表示文本字符串的結點的集合,等價于"cdata()|textnode()"。

              本期的內容就介紹至此,另有一個函數date()在本人的機器上一試就發生錯誤使瀏覽器自動關閉,還有一個函數pi()本人尚未找到適當的應用方法,就不介紹了,下期將講述如何XSL中使用腳本。

            posted on 2006-09-14 11:15 編程之道 閱讀(263) 評論(0)  編輯 收藏 引用 所屬分類: web編程

            久久99精品久久久久久9蜜桃| 麻豆一区二区99久久久久| 国产香蕉97碰碰久久人人| 久久精品视频免费| 久久亚洲精品国产亚洲老地址| 国内精品人妻无码久久久影院导航| 国产精品久久久久国产A级| 久久国产精品免费一区二区三区| 久久久亚洲欧洲日产国码是AV| 久久99国产精品久久99| 久久人妻少妇嫩草AV蜜桃| 精品久久久久久无码中文字幕| 亚洲精品无码久久久久去q | 亚洲综合伊人久久综合| 国产精品熟女福利久久AV| 久久久久久国产精品免费无码| 久久一本综合| 亚洲狠狠久久综合一区77777| 亚洲精品乱码久久久久久自慰| 久久久久久久综合日本| 久久久久中文字幕| 精品国产VA久久久久久久冰| 国产成人精品综合久久久| 久久久久99精品成人片| 香蕉久久一区二区不卡无毒影院 | 亚洲AV无码成人网站久久精品大| 欧美久久综合九色综合| 国产精品久久久天天影视香蕉| 国产精品久久久久久| 69久久精品无码一区二区| 久久天堂AV综合合色蜜桃网| 亚洲va中文字幕无码久久| 狠狠色婷婷久久综合频道日韩| 国产午夜精品理论片久久影视 | 看全色黄大色大片免费久久久| 国产成人香蕉久久久久| 久久99国产精品一区二区| 久久九九全国免费| 国产精品久久久久久久午夜片| 久久精品国产第一区二区| 国内精品伊人久久久久网站|