2011-02-17 10 views
5

işleviyle bir şablon eşleştirmesi yazmanın mümkün olup olmadığını merak ediyorum.XSLT 2.0 - Şablon Eşleme İle Eşleşiyor()

Ortak bir öğeye yeniden adlandırılması gereken birden çok öğeye sahip bir belgem var. Aşağıdakilerin tümü sadece OP'ye dönüştürülmelidir: OP1.2, OP7.3, OP2.4, OP5.6`, vb.

cevap

9

Evet, eşleşme ölçütünün içerdiği bir filtrenin içinde kullanabilirsiniz. öğeler için. Eğer daha karmaşık eşleştirme için REGEX kalıplarını destekler matches() işlevini kullanabilirsiniz XSLT 2.0 kullanıyorsanız

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

Ayrıca starts-with()

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

kullanabilirsiniz. Iyi bir cevap için

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

+1. –

+0

+1 Doğru cevap. –

+0

Eşleşecek birden çok değer sağlayabilir miyiz? like: match = "* [içerir (yerel ad(), 'OP1 | OP2 | OP3')] –