如何理解xslt中模板调用(我是新手,写得不对,大家砸砖头)
如何理解xslt中模板调用
因为样式表是描述性的而不是过程性的,所以我们不会假设第一个模板就是调用的开始,也不会把“/”当坐
起始节点。
样式表会发现模板间调用关系,会自动找到调用的起始点。
例如:
source.xml
/*------------*/
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="books.xsl"?>
<source>
<bold>Hello, world.</bold>
<red>I am </red>
<italic>fine.</italic>
</source>
books.xsl
/*-----------*/
<xsl:stylesheet version = '1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<p>
<b>
<xsl:value-of select="//bold"/>
</b>
</p>
<p style="color:red">
<xsl:value-of select="//red"/>
</p>
<p>
<i>
<xsl:value-of select="//italic"/>
</i>
</p>
</xsl:template>
<xsl:template match="/source">
<xsl:apply-templates select="/"/>
</xsl:template>
</xsl:stylesheet>
结果:
Hello, world.
I am
fine.
其中<xsl:apply-templates select="/"/>,就是一个调用语句,select属性重新选择了上下文节点,这句语
句的意思就是:调用与当前上下文节点匹配的模板。