xpath路径使用方式
一 在match中使用路径
<xsl:template select="网上书屋/分类/书籍"/>
二 在路径中使用*号
<xsl:template match="网上书屋/*/书籍">
如果我们只知道网上书屋的第二层节点为书籍,而网上书屋的第一代节点无法知道,雨丝可以使用 * 来代替网上书屋的任意的第一代子节点
三 在路径中使用//
<xsl:template select="网上书屋//书名">
* 只能用语匹配结构树中的某一层中的任意元素,而使用//可以直接引用任意层的后代节点
例如:<xsl:template match="/">
<xsl:apply-template select="网上书屋//书名"/>
</xsl:template>
<xsl:template match="书名">
<xsl:value-of select=".">
</xsl:template>
上面的例子中可以匹配结构树中所有的书名节点,当然可以把"网上书屋"去掉,直接使用//book 结果一样
四使用"@"选择元素属性
<sl:apply-tempalate select="@类别"/>
要从网上书屋中选择图书的分类情况可以同过"@类别"来获得书籍的分类
四 为模版选择多个元素
xsl 允许一次选择多个节点.xsl允许使用"|"来选择模版匹配的多个元素
<xsl:apply-template select="书名|作者|出版社"/>
使用"|"分割的多个元素还可以是特定路径下的元素
<xsl:apply-template select="书籍/书名|分类/书籍/作者|出版社"/>
五 使用"[]"为选择的元素添加条件
如果要选择具有ISBN子元素的书籍,则
<xsl:template match="书籍[ISBN]">
<xsl:apply-template select="书名|作者|出版社"/>
</xsl:template>
添加多个限定条件
<xsl:template match="书籍[ISBN|作者]">
<xsl:apply-template select="书名|作者|出版社"/>
</xsl:template>
选择具有isbn,作者子元素的书籍
在条件中使用 *
<xsl:template match="*[ISBN]">
<xsl:apply-template select="书名|作者|出版社"/>
</xsl:template>
选择具有isbn子元素的节点
限定元素有给定属性
<xsl:template match="书籍[@ISBN]">
<xsl:apply-template select="书名|作者|出版社"/>
</xsl:template>
限定元素内容为给定字符串
<xsl:template match="书籍[书名='c#高级编程']">
<xsl:apply-template select="书名|作者|出版社"/>
</xsl:template>