最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

跟我學XSL(二)第2/4頁

 更新時間:2006年10月16日 00:00:00   作者:  

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


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


  我們這里不打算就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()

  含義:返回該元素在集合中的位置,返回值是一整數(shù),其中第一個元素返回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()

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

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

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

  五、nodeType()

  含義:返回結點類型,結果為是數(shù)值。以下是返回值列表:

 結點類型  結點類型值  結點的字符形式描述
 Element  1  'element'
 Element Attribute  2  'attribute'
 Markup-Delimited Region of Text  3  'text'
 Processing Instruction  7  'processing_instruction'
 Comment  8  'comment'
 Document Entity  9  'document'

  六、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()

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

"*|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()"。

  本期的內容就介紹至此,另有一個函數(shù)date()在本人的機器上一試就發(fā)生錯誤使瀏覽器自動關閉,還有一個函數(shù)pi()本人尚未找到適當?shù)膽梅椒ǎ筒唤榻B了,下期將講述如何XSL中使用腳本。

相關文章

最新評論

墨竹工卡县| 县级市| 乌鲁木齐县| 通海县| 耒阳市| 泽州县| 集安市| 五莲县| 边坝县| 额济纳旗| 象州县| 昌都县| 疏勒县| 阜新| 镇宁| 且末县| 牟定县| 若尔盖县| 当雄县| 清涧县| 广安市| 治县。| 凤台县| 清流县| 冀州市| 阿勒泰市| 阳春市| 濉溪县| 尼玛县| 温州市| 图们市| 游戏| 曲靖市| 桐柏县| 江都市| 澜沧| 无为县| 宁晋县| 西昌市| 建湖县| 寿阳县|