값이 0 일 때마다 값을 업데이트해야하는 특정 속성 (myId)이있는 문서가 있습니다. 이 문서는 내가 호출 프로그램에서 전달 된 고유 한 ID로 설정하기 위해 속성 MYID에 맞게 템플릿을 사용하고 있지만 난 단지 문서의 속성 중 하나와 일치 할이XSLT 한 번만 속성을 변경하는 템플릿 일치
<?xml version="1.0" encoding="UTF-8"?><Summary>
<Section myId="0">
<Section myId="0">
<Para>...</Para>
</Section>
<Section myId="5">
<Para>...</Para>
</Section>
</Section>
</Summary>
것 같습니다. 값이 0 인 추가 속성은 다른 ID를 전달하여 업데이트됩니다. 내 템플릿은이 같은 모습을 사용하고 있습니다 :
<xsl:template match = '@myId[.="0"]'>
<xsl:attribute name = "{name()}">
<xsl:value-of select = "$addValue"/>
</xsl:attribute>
</xsl:template>
값 addValue이 호출 프로그램에서 전달 된 글로벌 매개 변수입니다. 오늘의 좋은 부분에 대한 답변을 검색했지만이 템플릿을 한 번만 적용 할 수는 없습니다. 결과는 myId 값을 addValue의 내용으로 바꿉니다. '@myId [.0 0]] [1]'과 (와) 일치 시키려고했는데 일치 시키려면 position() 함수를 사용하려고했지만 템플릿은 항상 0 인 모든 myId 속성에 적용됩니다.
일치하는 템플릿을 한 번만 적용 할 수 있습니까?
카운트가 0 인 '선행'축을 사용해보십시오. –