2011-02-17 2 views
5

템플릿 일치를 함수와 함께 쓸 수 있는지 궁금합니다.XSLT 2.0 - Contains()와 일치하는 템플릿

공통 요소로 이름을 바꿔야하는 여러 요소가있는 문서가 있습니다. 다음 항목 모두를 OP : OP1.2, OP7.3, OP2.4, OP5.6` 등과 같이 이름을 바꿀 필요가 있습니다.

답변

9

예, 일치 기준에서 조건 자 필터 안에 을 사용할 수 있습니다 요소들. 당신은 당신이 더 복잡한 매칭을위한 정규식 패턴을 지원하는 matches() 기능을 사용할 수 있습니다 XSLT 2.0을 사용하는 경우

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

또한 starts-with()

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

를 사용할 수 있습니다.

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

+1 좋은 답변입니다. –

+0

+1 정답. –

+0

일치시킬 값을 여러 개 제공 할 수 있습니까? like : match = "* [contains (local-name(), 'OP1 | OP2 | OP3'] –