亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > XML > 正文

XML入門教程:XPath-XML/XSLT

2024-09-05 20:55:33
字體:
來源:轉載
供稿:網友

XPath是一種用來從文檔樹中選擇節點和節點集的語言。從XPath的角度來看,共有七種節點:根節點、元素節點、屬性節點、文本節點、注釋節點、處理指令節點、名稱空間節點。
XPath是一種用來從文檔樹中選擇節點和節點集的語言。從XPath的角度來看,共有七種節點:

    根節點
    元素節點
    屬性節點
    文本節點
    注釋節點
    處理指令節點
    名稱空間節點
    CDATA部份,實體引用和文檔類型聲明不包括在內,XPath在所有這些項都并入文檔之后才起作用。根節點和根元素是不同的兩個概念,根節點包含整篇文檔,包括根元素。
    本文由武林網(http://www.49028c.com)整理發布!轉載請注明出處,謝謝!

    1.匹配模式
    匹配模板的通用模式
    Table6.1. 模式 描述 match="E" 匹配元素E match="*" 匹配任意元素 match="E|F" 匹配元素E和F match="E/F" 匹配以E為父元素的元素F match="E//F" 匹配以E為根元素的元素F match="/" 匹配根節點 match="text()" 匹配文本節點 match="comment()" 匹配注釋節點 match="processing-instruction()" 匹配處理指令 match="node()" 匹配除屬性節點和根節點外的節點 match="id(test)" 匹配具有唯一ID test的元素 match="E[@CLASS="foo"] 匹配元素E,其類屬性為foo match="E[F]" 匹配元素包含有F元素的E元素

    2.XPath軸
    XPath提供了選擇節點的機制,兩個較有用的是軸選擇和謂語選擇,軸指定上下文節點和要選擇的節點的關系。共有十三種軸,最常用的有四種,分別是子軸(child)、屬性軸(attribute)、自已(self)、雙親(parent)。
    Table6.2.XPath軸描述 軸 描述 child 包含當前節點的兒子 descendent 包含當前節點的后代,后代不包含屬性(attribute)或名稱域(namespace)節點 parent 包含當前節點的父親 ancestor 包含當前節點的祖先,祖先總是包含根節點 following-sibling 包含當前節點隨后的所有節點樹,但不包含attribute或namespace節點 preceding-sibling 包含當前節點之前的所有節點樹,但不包含attribute或namespace節點 following 包含當前節點隨后的所有節點,following軸排除了當前節點的后代和attribute或namespace節點 preceding 包含當前節點之前的所有節點,following軸排除了當前節點的后代和attribute或namespace節點 attribute 包含當前節點的所有屬性 namespace 包含當前節點的所有namespace節點 self 只包含當前節點 descendent-or-self 包含當前節點和當前節點的后代 ancestor-or-self 包含當前節點和當前節點的祖先

    3.謂詞
    XPath表達式可以匹配多個節點,如需對匹配的節點進行進一步的篩選,可以使用謂詞。
    Table6.3.選擇節點常用謂詞 謂詞 描述 select="E" 選擇是當前節點的孩子的E元素 select="" 選擇當前節點的孩子的所有元素 select="text()" 選擇當前節點的文本節點孩子 select="@name" 選擇當前節點的name屬性 select="@*" 選擇當前節點的所有屬性 select="E[1]" 選擇當前節點的孩子的第一個E元素 select="E[last()]" 選擇當前節點的孩子的最后一個E元素 select="*/E" 選擇當前節點的孫了的所有E元素 select="E//F" 選擇從當前節點的孩子的E元素派生而來的元素F select="//" 選擇根元素 select="//E" 選擇從根節點派生而來的E元素 select="//E/F" 選擇所有是從根節點派生而來的E元素的孩子的F元素 select="." 選擇當前節點 select=".//E" 選擇從當前節點派生而來的所有E元素 select=".." 選擇當前節點的父節點 select="../@name" 選擇當前節點的父節點的name屬性 select="E[@name='foo']" 選擇所有是當前節點的孩子,并且其name屬性具有foo值的E屬性,除等號外,還可用<,>,<=,>=和!= select="E[@foo and @bar]" 選擇所有包含foo和bar屬性的E元素
    home/person/@id這種定位路徑的寫法叫簡寫定位路徑,該寫法簡潔,容易理解,是XSLT匹配模式中最常用的寫法。還有一種稱為非簡寫定位路徑的寫法,它把節點測試和軸結合在一起,如child::home/child::person/attribute::id。該寫法在實際使用中不常用,但它具有非常重要的性能因此有必要了解。

    4.XPath表達式
    位置路徑是XPath的一個最常用的表達式,用以標識XML文檔的節點集。除此之上,XPath表達式還可返回數字、布爾和字符串。非節點集的XPath表達式不能用于xsl:template元素的match屬性中。它們用于xsl:value-of元素的select屬性值或用于位置路徑的謂詞中。
    本文由武林網(http://www.49028c.com)整理發布!轉載請注明出處,謝謝!
    每個XPath位置路徑可分為一步名多步,每步以“/”號分隔,如:
    room[/@name=$root]/date[year=$year and month=$month]/meeting
    上下文節點即當前正在處理的節點,也就是位置路徑定位的當前節點。上下文在XPath表達式計算前被創建,由XSLT處理器創建。處理每一步后,上下文都會改變。
    位置路徑中的步可分為三部份:軸(axis)、節點測試(note test)和謂詞(predicate),它的寫法如下:
    axis::note-test[predicate]
    軸和節點測試之間用“::”分開,每個謂詞由括號[]括起來。
    要設計好一個位置路徑,需確保在每一步選擇最少的節點,使用最嚴格的軸,用最嚴格的節點測試。避免使用謂詞,因為由軸和節點測試選擇的節點集的每個節點都會用作謂詞的上下文節點。對于位置路徑的三步,最節省的是節點測試。
    XPath中的所有數字都是8個字節的IEEE754浮點雙精度類型,與java的double類型相同??杀硎菊裏o窮大、負無窮大和NaN(零除零)值。支持五種運算符,分別是加( )、減(-)、乘(*)、除(div)、取余(mod)。
    XPath中的字符串是Unicode字符,用單引號或雙引號定界??梢允褂?和!=對字符進行比較,也可用<,>,<=,>關系運算符,但比較的兩個字符必須是數字,否則比較結果沒有意義。
    XPath中的布爾值常用于位置路徑的謂詞中,如/person[name="debian"]。布爾值還常用于xsl:if和xsl:when元素的test屬性中。如:
    <xsl:template match="home"> <xsl:if test = ".='debian' or .='redhat'"> <xsl:value-of select = "." /> </xsl:if></xsl:template>

    5.XPath函數
    XPath還提供很多函數,用于表達式和謂詞。XPath函數的返回值有四種類型,分別是:

      布爾值,如:true()返回ture(真),false()返回false(假),not()對布爾值取反。
      數字,如:number()把任意類型轉化數字,celing()返回大于或等于參數的最小整數。
      節點集,如:position()返回當有節點在上下節點列表中的位置,count()可統計節點數。
      字符串,如:string()轉化任意類型為字符串,string-length()返回字符串長度。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产欧美日韩精品| 色偷偷9999www| 91久久精品国产91久久性色| 亚洲精品videossex少妇| 精品国产成人在线| 日韩精品免费观看| 2020国产精品视频| 亚洲免费av电影| 成人网在线视频| 免费av在线一区| 狠狠色噜噜狠狠狠狠97| 国产一区二区日韩精品欧美精品| 亚洲一区第一页| 奇米4444一区二区三区| 日韩视频在线免费观看| 精品国产乱码久久久久酒店| 国产成人精彩在线视频九色| 亚州国产精品久久久| 精品国内产的精品视频在线观看| 亚洲美女又黄又爽在线观看| 中文字幕亚洲欧美日韩2019| 国产精品99久久久久久白浆小说| 91中文字幕在线观看| 国产成人亚洲综合| 亚洲最新中文字幕| 国产精品丝袜久久久久久高清| 国语自产精品视频在线看抢先版图片| 国产精品久久久久免费a∨大胸| 欧美精品videosex性欧美| 国产在线观看91精品一区| 亚洲精品国产精品国产自| 国产午夜精品全部视频在线播放| 久久91亚洲精品中文字幕奶水| 日韩中文字幕免费看| 2018日韩中文字幕| 欧美国产精品va在线观看| 久久久精品日本| 懂色av影视一区二区三区| 亚洲香蕉成视频在线观看| 中文日韩在线视频| 日韩精品极品视频免费观看| 91在线国产电影| 亚洲人成电影网站| 国产成人在线精品| 日韩欧美aⅴ综合网站发布| 日韩欧美成人精品| 午夜精品在线观看| 国产日韩欧美中文在线播放| 色偷偷88888欧美精品久久久| 国产综合在线视频| 精品电影在线观看| 亚洲品质视频自拍网| 久热精品在线视频| 在线免费观看羞羞视频一区二区| 在线亚洲午夜片av大片| 国产亚洲欧洲黄色| 一本一道久久a久久精品逆3p| 91av中文字幕| 亚洲精品福利免费在线观看| 精品久久久国产精品999| 亚洲图片欧洲图片av| 九九视频直播综合网| 日本高清+成人网在线观看| 菠萝蜜影院一区二区免费| 国产精品福利网站| 亚洲成人久久久| 欧美成人精品在线观看| 91在线国产电影| 精品国产一区二区三区久久| 91中文在线观看| 91色p视频在线| 欧美日韩一区二区在线播放| 国产精品久久久久久久app| 精品久久久久久久久久| 大桥未久av一区二区三区| 亚洲人成网站色ww在线| 国产精品永久免费在线| www.久久久久久.com| 亚洲白拍色综合图区| 91色琪琪电影亚洲精品久久| 久久精品国产99国产精品澳门| 九九热最新视频//这里只有精品| 国产精品九九久久久久久久| 国产成人在线一区| 91久久久久久久久| 国产精品99久久久久久白浆小说| 欧美日韩免费区域视频在线观看| 日韩女在线观看| 日韩在线观看免费高清| 欧美性少妇18aaaa视频| 亚洲第一福利网| 欧美特级www| 欧美日韩亚洲高清| 亚洲美女av在线| 欧美精品www在线观看| 欧美一级视频在线观看| 国产精品日日做人人爱| 国产成人自拍视频在线观看| 欧美午夜激情在线| 欧美丰满少妇xxxx| 欧美精品在线免费观看| 中文字幕在线观看日韩| 国产精品99久久99久久久二8| 国产欧美一区二区| 精品久久久久久久久中文字幕| 国产欧美精品一区二区三区-老狼| 成人av番号网| 九九精品在线观看| 欧美日韩一区二区免费在线观看| 精品高清美女精品国产区| 久久91亚洲人成电影网站| 伊是香蕉大人久久| 亚洲字幕一区二区| 欧美做受高潮1| 亚洲欧美另类自拍| 久久影院模特热| 在线免费观看羞羞视频一区二区| 国产亚洲美女久久| 性色av香蕉一区二区| 久久久久免费精品国产| 欧美大成色www永久网站婷| 中文字幕亚洲情99在线| 久久久中文字幕| 这里只有精品视频| 久久av.com| 中文字幕日韩欧美在线视频| 7m第一福利500精品视频| 亚洲字幕在线观看| 亚洲欧美色图片| 97在线视频精品| 亚洲人a成www在线影院| 国产成人一区二区在线| 日本成人免费在线| 欧美性猛交xxxx黑人猛交| 免费91在线视频| 国产va免费精品高清在线| 在线丨暗呦小u女国产精品| 欧美成人黑人xx视频免费观看| 中日韩午夜理伦电影免费| 国产精品视频区| 国产成+人+综合+亚洲欧美丁香花| 97视频在线观看亚洲| 黄色精品一区二区| 欧美日韩国产va另类| 久久777国产线看观看精品| 欧亚精品中文字幕| 久久综合免费视频影院| 亚洲欧美激情一区| 亚洲影院色在线观看免费| 成人在线小视频| 91免费国产网站| 狠狠色狠色综合曰曰| 性色av一区二区三区在线观看| 主播福利视频一区| 这里精品视频免费| 欧美日韩一区二区三区| 欧美成年人视频网站欧美| 欧美高清激情视频| 欧美黑人狂野猛交老妇| 国产精品欧美风情| 日韩欧美在线网址| 国产精品日韩欧美| 亚洲一二在线观看| 亚洲精品中文字幕有码专区|