在XSLT中,可以使用 <xsl:import> 元素导入其他样式表,从而重用模板。当一个模板继承自另一个模板时,它可以使用 <xsl:apply-imports> 元素调用在父模板中定义的同名模板。这样,如果在当前模板中没有找到匹配的模板规则,系统将会在导入的模板中查找。
以下是一个简单的示例,说明 <xsl:apply-imports> 的用法:
假设有两个样式表文件,parent.xsl 和 child.xsl:
parent.xsl:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="root">
<p>
<xsl:apply-imports/>
</p>
</xsl:template>
</xsl:stylesheet>
child.xsl:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:import href="parent.xsl"/>
<xsl:template match="text()">
<strong><xsl:value-of select="."/></strong>
</xsl:template>
</xsl:stylesheet>
在这个例子中,child.xsl 导入了 parent.xsl,并在其模板中定义了一个匹配文本的规则。在 parent.xsl 中的根模板匹配了一个名为 "root" 的元素,并使用 <xsl:apply-imports/> 调用了在 child.xsl 中定义的匹配文本的模板。
当对以下 XML 进行转换时:
<root>Hello, World!</root>
使用 child.xsl 进行转换后的结果将是:
<p>
<strong>Hello, World!</strong>
</p>
请注意,<xsl:apply-imports> 只能用于 <xsl:template> 元素内部,用于调用导入模板中相同名称的模板。
转载请注明出处:http://www.pingtaimeng.com/article/detail/12219/XML