基本结构:
<xsl:template match="匹配模式">
<!-- 转换规则 -->
</xsl:template>
匹配模式:
match 属性定义了该模板应该匹配的源 XML 文档中的元素或节点。匹配模式可以是一个元素名称、路径表达式,甚至是通配符。
例如,匹配所有 book 元素的模板:
<xsl:template match="book">
<!-- 转换规则 -->
</xsl:template>
转换规则:
在 <xsl:template> 元素的主体中,你定义了处理匹配元素时要执行的转换规则。这可以包括文本输出、元素和属性的创建,以及对子元素的递归处理。
例如,处理 book 元素的转换规则:
<xsl:template match="book">
<div>
<h2><xsl:value-of select="title"/></h2>
<p>Author: <xsl:value-of select="author"/></p>
<p>Price: $<xsl:value-of select="price"/></p>
</div>
</xsl:template>
在这个例子中,当 XSLT 处理器在源 XML 文档中找到一个 book 元素时,它将应用这个模板,创建一个包含标题、作者和价格信息的 div 元素。
使用模板的方式:
1. 直接应用: 使用 <xsl:apply-templates> 元素在模板内部显式调用其他模板,实现对子元素的递归处理。
<xsl:template match="books">
<html>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
2. 模板匹配模式的优先级: 如果多个模板可以匹配同一个节点,XSLT 处理器将根据它们的优先级和特定的匹配规则选择一个模板。
<xsl:template match="book">
<!-- 优先级高的模板 -->
</xsl:template>
<xsl:template match="book[price>50]">
<!-- 优先级低,但条件更具体的模板 -->
</xsl:template>
总体而言,<xsl:template> 元素是 XSLT 样式表中定义转换规则的关键元素,通过匹配模式和转换规则的组合,可以灵活地控制对 XML 文档的转换。
转载请注明出处:http://www.pingtaimeng.com/article/detail/12205/XML