【发布时间】:2011-06-29 12:01:10
【问题描述】:
我想知道是否可以使用contains() 函数编写模板匹配。
我有一个包含多个元素的文档,这些元素需要重命名为一个公共元素。以下所有内容都需要重命名为 OP:OP1.2、OP7.3、OP2.4、OP5.6` 等。
【问题讨论】:
标签: templates xslt contains matching
我想知道是否可以使用contains() 函数编写模板匹配。
我有一个包含多个元素的文档,这些元素需要重命名为一个公共元素。以下所有内容都需要重命名为 OP:OP1.2、OP7.3、OP2.4、OP5.6` 等。
【问题讨论】:
标签: templates xslt contains matching
是的,您可以在元素匹配条件中的谓词过滤器内使用contains()。
<xsl:template match="*[contains(local-name(),'OP')]>
<OP>
<xsl:apply-templates select="@*|node()"/>
</OP>
</xsl:template>
你也可以使用starts-with()
*[starts-with(local-name(),'OP')]
如果您使用的是 XSLT 2.0,则可以使用 matches() 函数,该函数支持 REGEX 模式以进行更复杂的匹配。
*[matches(local-name(),'^OP')]
【讨论】: