<xsl:template> 元素
<xsl:template> 元素定义了用于匹配节点的规则(match,其中"/"匹配整个文档),在apply-template使用
语法规则为:
<xsl:template
name="name"
match="pattern"
mode="mode"
priority="number">
<!-- Content:(<xsl:param>*,template) -->
</xsl:template>
其中:
name 模板名称
match Xpath语句,指定条件
mode模式,例如红,蓝等样式
priority 指定模板的优先级,为数字。
如果每个模板都赋予了优先级,则处理器可以使用这个值来确定哪个模板具有最高优先级。如果没有显式指定优先级,则处理器会为模板计算一个默认值。由处理器指定的默认优先级范围是从 -0.5 到 +0.5。基本上,模式越特殊,其默认优先级就越高。由于范围是从 -0.5 到 +0.5,因此如果显式指定一个模板的优先级为 1,就总会超过默认优先级。
当一个节点匹配在 XSLT 模板中建立的多个模式(也称为规则)时,处理器就会按照 XSLT 规范中描述的冲突解决指导原则来确定使用哪一个模式。这些指导原则表明,当发生冲突时,会调用优先级最高的模板。然而,确定模板实际优先级的算法还需要附带解释一下。
要确定哪个模板具有最高优先级,处理器首先会消除导入的所有模板(使用 xsl:import 元素);自动导入的模板比经过导入转换的模板优先级低。然后处理器确定其余模板的优先级值。
当出现冲突时,XSLT 需要经过大量处理才能确定调用哪个模板。
<xsl:apply-templates>元素
<xsl:apply-templates>元素用于告诉处理器处理当前节点的所有子节点。在匹配的节点模板中还可以再包含<xsl:apply-templates>元素,从而通知处理器处理该节点的所有子节点,这样依次调用,就可以完成对文档树中所有节点处理。
note:
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>表示处理所有结点
<xsl:template match="你定义的"/>表示过滤,不做任何处理
分享到:
相关推荐
每个 `<xsl:template>` 都有一个 `match` 属性,用于指定模板应应用于哪种节点。 **语法:** ```xml <xsl:template match="pattern" mode="name"> template content </xsl:template> ``` `pattern` 指定模板应匹配...
<xsl:template match="message"> <xsl:apply-imports/> </xsl:template> </xsl:stylesheet> ``` 2. **`<xsl:apply-templates>` 元素** - **定义与用法**:此元素用于选择并应用一组匹配的模板到当前节点...
- `<xsl:choose>` 元素用于基于条件执行不同的模板或内容。 - **语法**: - `<xsl:choose> <xsl:when test="..."> <xsl:otherwise>...</xsl:otherwise> </xsl:choose>` - **属性**:无 - **示例**: - 根据...
比较有用的关于xml的命令, xsl:import元素 xsl:import元素用于导入外部的样式单,也是一个顶级元素。...<xsl:template match=”node”> <xsl:apply-impotres/> </xsl:template> ……… </xsl:stylesheet>
<xsl:template match="/"> <xsl:message>Matched root node</xsl:message> <xsl:apply-templates select="*"/> </xsl:template> <xsl:template match="html" xmlns:html="http://www.w3.org/1999/xhtml"> <xsl:...
<xsl:template match="message"> <xsl:apply-imports/> </xsl:template> </xsl:stylesheet> ``` ### <xsl:apply-templates> 元素 #### 定义与用法 `<xsl:apply-templates>`元素用于在当前上下文中选择并...
<xsl:template match="paragraph"> <xsl:apply-templates/> </xsl:template> ``` 这里的`match="paragraph"`表示当遇到XML中的`<paragraph>`元素时,使用该模板进行处理。`<xsl:apply-templates/>`则会递归...
<xsl:template match="/data_info"> <xsl:element name="{name()}"> <xsl:call-template name="splitStr"> <xsl:with-param name="str" select="@CC_ID"/> <xsl:with-param name="ctrlname" select="'CC_ID'"/>...
模板使用`<xsl:template>`标记,包含一个`match`属性,该属性定义了模板所匹配的XML元素模式。样式表的根元素必须是`<xsl:stylesheet>`,并可能包含名称空间声明,例如: ```xml <xsl:stylesheet xmlns:xsl=...
<xsl:template name="PNHeader">...</xsl:template> <xsl:call-template name="PNHeader"/> ``` - `match`示例: ```xml <xsl:template match="/ME/DATA">...</xsl:template> <xsl:apply-template select="/...
### XSLT 元素使用说明 ...接下来的章节将详细介绍更多XSLT元素,包括但不限于`<xsl:attribute>`、`<xsl:template>`等。这些元素共同构成了XSLT语言的核心,使得开发者能够在处理XML数据时具有更大的灵活性和效率。
<xsl:template match="message"> <xsl:apply-templates/> </xsl:template> </xsl:stylesheet> ``` 然后,在另一个需要使用该模板的样式表中,可以通过以下方式引入并使用: ```xml <xsl:stylesheet ...
这个例子中的`match="name"`表示模板匹配XML中的`<name>`元素,`<xsl:value-of select="."/>`则用于输出匹配元素的文本内容。 接下来是XPath,它是XSLT中的导航工具,用于在XML文档中查找节点。XPath表达式可以返回...
<xsl:template name="writeCssFile"> <xsl:result- document href="{testng:absolutePath('style.css')}" format="text"> <xsl:choose> <xsl:when test="testng:isFilterSelected('CONF') = 'true'"> ....
XSL 文档的核心是模板(Template),模板定义了如何处理 XML 文档中的各个节点。一个基本的模板示例如下: ```xml <xsl:template match="/"> <!-- 模板内容 --> </xsl:template> ``` - **Match 属性**:指定了该...
<xsl:template name="StringReplace"> <xsl:param name="SrcString"/> <xsl:param name="FromString"/> <xsl:param name="ToString"/> <xsl:choose> <xsl:when test="contains($SrcString, $FromString)"> ...
- **`<xsl:template>`**:模板元素是XSLT中最基本的构建块。它用于匹配输入文档中的特定模式,并指定如何转换这些模式。 - `match`属性定义了模板所匹配的节点类型或模式。 - 示例: ```xml <xsl:template match...
针对于xml个人简历,附有xsl文档代码: <xsl:stylesheet version="1.0" xmlns:xsl=...<xsl:template match="/"> <html> <head> <title><xsl:value-of select="简历/个人简历/基本信息/姓名"/>XX的个人简历</title>
<xsl:template match="学号 | 姓名 | 性别 | 班级 | 出生年月"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> ``` 4. 结束XSLT文件: ```xml </xsl:stylesheet> ``...
在上述代码中,`<xsl:template>`定义了处理XML元素的规则,`<xsl:apply-templates>`则递归地处理子元素,从而实现无限级别的树形展开。 当浏览器加载XML文档和相应的XSLT样式表时,它会执行转换并将结果呈现为HTML...