2016-06-02 4 views
1

템플릿에서 XSLT의 전역 변수를 무시할 수 없습니다.템플릿에서 XSLT의 전역 변수를 무시할 수 있습니까?

글로벌 변수 선언 :

<xsl:template name ="newTemplate">  
    <xsl: variable name="abc" select="'1'" /> 
    <!- ... --> 
</xsl:template> 

는 전역 변수를 대체 할 수 있나요 : 내가 전역 변수를 대체하고자하는

<xsl:variable name="abc" /> 

템플릿? 그렇다면 어떻게?

+1

XSLT의 변수는 XSLT에서 변경할 수 없으므로 일단 설정하면 변경할 수 없습니다. 코드 스 니펫에서 템플릿의'abc' 선언은 전역 선언을 "그림자"라고합니다. 즉, 템플릿에서 전역 선언에 액세스 할 수 없게됩니다. 방금 템플리트의 로컬 인 같은 이름의 새 변수를 작성했습니다. 더 많은 것을 돕기 위해, 당신이 해결하려고하는 방법보다는 실제로 해결하려고하는 문제를 설명하는 것이 더 나을 것입니다. 고맙습니다! –

+0

@TimC :이 주석은 XY 문제의 X를 처리하는지 여부에 상관없이 대답으로 올라갈 가치가 있습니다. – kjhughes

+0

답변으로 추가했습니다. 감사! –

답변

2

XSLT의 변수는 XSLT에서 변경할 수 없으므로 일단 설정하면 변경할 수 없습니다. 귀하의 질문에 코드 조각에서 abc의 선언은 "그림자"전역 선언이라고합니다. (https://www.w3.org/TR/xslt#dt-shadows 참조).

이것은 전역 선언을 템플릿에서 액세스 할 수 없음을 의미합니다. 방금 템플리트의 로컬 인 같은 이름의 새 변수를 작성했습니다.

이것은 기본 문제를 해결할 수 없다는 것을 의미하지 않으며 변수를 변경하여 해결할 수 없다는 것을 의미합니다. 이상적으로는 문제를 해결하려고하는 것이 아니라 문제를 항상 해결해야합니다.

+0

답장을 보내 주셔서 감사합니다. 제게는 –

+2

@ISHANSHARMA : 여기에 제기 된 질문에 완전히 대답합니다. 이 답변을 [** 수락 **] (http://meta.stackoverflow.com/q/5234/234215)하고 [mcve]가 포함 된 새로운 질문을 게시하여보다 구체적인 도움을 제공 할 수 있도록하십시오. 문제를 해결할 수있는 대안을 찾으십시오. 감사. – kjhughes

관련 문제