6、self軸
songs.xslt文件如下:
<?XML version="1.0" encoding="gb2312"?>
<xsl:stylesheet version="1.0" XMLns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<Html>
<head><title>練習使用child軸</title></head>
<body>
<xsl:apply-templates select="歌曲列表"/>
</body>
</Html>
</xsl:template>
<xsl:template match="歌曲列表">
<xsl:apply-templates select="child::*"/>
</xsl:template>
<xsl:template match="text()">
文本節點開始:<xsl:value-of select="self::text()"/>:文本節點結束<br/>
</xsl:template>
<xsl:template match="*">
元素節點開始:<xsl:value-of select="self::*"/>:元素節點結束<br/>
</xsl:template>
</xsl:stylesheet>
可以看出,self軸表示本身。實際上我們可以用.來替換以上寫法。
7、following軸、following-sibling軸
songx.XML文件如下:<?XML version="1.0" encoding="gb2312"?>
<?XML-stylesheet type="text/xsl" href="songs.xslt"?>
<歌曲列表>
這個歌曲列表有兩首歌
<名稱>周懂專輯</名稱>
<!--第二首歌曲 -->
<歌曲 日期="2003-11-12">
月亮代表我的心
<名稱>夏天裡的一把雨</名稱>
<作曲家>張三</作曲家>
<長度>4:20</長度>
<藝術家>小天王</藝術家>
月亮代表你的心
</歌曲>
<!--第二首歌曲 -->
<歌曲 日期="2005-12-30">
月亮代表他的心
<名稱>冬天裡的一把雪</名稱>
<作曲家 sex="T">王五</作曲家>
<作曲家>李四</作曲家>
<藝術家>周董</藝術家>
月亮代表她的心
</歌曲>
</歌曲列表>
songs.xslt文件如下:<?XML version="1.0" encoding="gb2312"?>
<xsl:stylesheet version="1.0" XMLns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<Html>
<head><title>練習使用child軸</title></head>
<body>
<xsl:apply-templates select="歌曲列表"/>
</body>
</Html>
</xsl:template>
<xsl:template match="歌曲列表">
<xsl:apply-templates select="歌曲"/>
</xsl:template>
<xsl:template match="歌曲">
<xsl:apply-templates select="child::名稱/following::*"/>
</xsl:template>
<xsl:template match="*">
<h3>元素節點<xsl:value-of select="."/></h3>
</xsl:template>
<xsl:template match="text()">
<h3>文本節點<xsl:value-of select="."/></h3>
</xsl:template>
</xsl:stylesheet>
結果如下圖:
將following::*更改為following-sibling::*,結果如下圖:
following::* 表示上下文節點後面的所有元素節點。
following-sibling::* 表示上下文節點後面但是與上下文節點同屬於一個父節點的那些節點。
注意:以上兩例中的上下文節點是名稱節點。
8、preceding軸、preceding-sibling軸
preceding軸、preceding-sibling軸與following軸、following-sibling類似大家自己舉個例子吧!
9、attribute軸
songs.XML文件與上面相同songs.xslt文件如下:<?XML version="1.0" encoding="gb2312"?>
<xsl:stylesheet version="1.0" XMLns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<Html>
<head><title>練習使用following和following-sibling軸</title></head>
<body>
<xsl:apply-templates select="歌曲列表"/>
</body>
</Html>
</xsl:template>
<xsl:template match="歌曲列表">
<xsl:apply-templates select="歌曲"/>
</xsl:template>
<xsl:template match="歌曲">
<xsl:apply-templates select="attribute::日期"/>
</xsl:template>
<xsl:template match="attribute::日期">
<xsl:value-of select="."/><br/>
</xsl:template>
</xsl:stylesheet>
運行結果如下:
attribute::日期 表示上下文節點的日期屬性
attribute::* 表示上下文節點的所有屬性
我們在使用時可以簡寫成 @日期 @*
10、parent軸
這個軸比較簡單表示上下文節點的父節點,如下,xongs.xslt文件:
<?XML version="1.0" encoding="gb2312"?>
<xsl:stylesheet version="1.0" XMLns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<Html>
<head><title>練習使用attribute軸</title></head>
<body>
<xsl:apply-templates select="歌曲列表"/>
</body>
</Html>
</xsl:template>
<xsl:template match="歌曲列表">
<xsl:apply-templates select="歌曲"/>
</xsl:template>
<xsl:template match="歌曲">
<xsl:apply-templates select="名稱"/>
</xsl:template>
<xsl:template match="名稱">
<xsl:value-of select="parent::歌曲"/><br/>
</xsl:template>
</xsl:stylesheet>
結果如下圖:
parent::歌曲 表示上下文節點的父節點歌曲節點,另外如果上下文節點是元素節點,以下方式也表示父節點parent::*,但是最通用的還是parent::node(),簡寫..