2011-02-17 95 views
5

我想知道是否可以使用函數編寫模板匹配。XSLT 2.0 - 使用包含模板匹配()

我有一個文檔有多個元素需要重新命名爲一個公共元素。以下所有需要重新命名爲OP:OP1.2,OP7.3,OP2.4,OP5.6`等。

回答

9

是的,您可以在匹配標準中的謂詞過濾器中使用元素。

<xsl:template match="*[contains(local-name(),'OP')]> 
    <OP> 
    <xsl:apply-templates select="@*|node()"/> 
    </OP> 
</xsl:template> 

你也可以如果使用XSLT 2.0,你可以使用matches()功能,支持更復雜的匹配正則表達式模式使用starts-with()

*[starts-with(local-name(),'OP')] 

*[matches(local-name(),'^OP')] 
+0

+1一個很好的答案。 – 2011-02-18 05:15:19