2012-07-23 2 views
8

xsl 텍스트 요소에 미리 정의 된 문자열 변수를 삽입하는 것을 선호하지만 웹 검색 중에는 포인터를 찾을 수없는 스타일 시트가 있습니다. 예를 들어xsl : text 요소에서 변수를 참조하는 방법은 무엇입니까?

: 나는 $ var에, ($ var에) {$ var에}과 노력

<xsl:variable name="var" select="node()/ref/text()"/> 
... 
<xsl:text>Some text where I want to append $var variable desperately</xsl:text> 
... 

...

답변

11
Some text where I want to include the value of <xsl:value-of select='$var'/>. 

<xsl:text> 만의 동작을 제어 할 필요가하는 것으로 공백 대부분의 경우 텍스트를 입력하고 결과가 예상 한 것과 다를 때이 요소를 포함 할 수 있습니다. 그러나 <xsl:text>을 사용할 때의 규칙이 아프지는 않습니다. :)는 (그리고 복잡 아니에요 : 사용 <xsl:text>를, 그렇지 않은 경우 그들은 당신이 양쪽 끝에 방지 할 추가 공백을 포함 할 경우, 텍스트 노드가 공백이 있거나 것입니다.)

이 편집 : 아무튼 변수에 그 공백을 참고 '

<xsl:variable name="newline"><!-- can be global --> 
<xsl:text> 
</xsl:text> 
</xsl:variable> 

<xsl:when test="starts-with(., $newline)"> 
    ... 
</xsl:when> 

Here's some text<xsl:value-of select='$newline' />with formatting. 
+0

같은 값으로 변수를 생성합니다 공백 (LF)과 실제로 삽입하고자하는 변수는 공백을 미리 정의 할 수도 있습니다 : D 그래서''로 해결할 수 있지만 허용되지 않는' '요소는 사용할 수 없습니다. 나는 다른 방법으로는 가능하지 않을 때까지 기다릴 것이고 당신의 답을 옳다고 표시 할 것입니다. 감사. – theta

+0

@theta : 당신은 ''가 ''요소 안에 허용되지 않는다고 말하고 있습니까? 와우, 네 말이 맞아. 나는 잊어 버렸었다. – LarsH

4

xsl:text 만 출력이 고정 된 텍스트에 사용되며 중첩 된 지침을 포함 할 수 없습니다 사용하는 경우 t는 만 XSL 구문 분석 단계이다, 보호 xsl:text이 필요합니다. 변수 텍스트를 출력하라는 명령은 xsl:value-of입니다. 그것이 조금 추한 있지만 이것은 당신에게 당신의 텍스트와 변수의 텍스트 사이의 공백을 완벽하게 제어 할 수 있습니다,

<xsl:value-of select="concat(
    'Some text where I want to append ', 
    $var, 
    ' variable desperately')" /> 

:

6

는 여기에 또 다른 방법입니다.

+0

이것은 실제 답변입니다. – Andrew

0

나는 문자열 변수과

<xsl:variable name="imgsrc">http://mirrors.creativecommons.org/presskit/buttons/<xsl:value-of select='$iconSize' />/<xsl:value-of select="substring-before($licenceTypeAndText, '|')" /></xsl:variable> 

에 또 다른 변수를 만들려면이 같은 일을했고,이 네 흰색을 위해 사용이

http://mirrors.creativecommons.org/presskit/buttons/80x15/png/by.png 
관련 문제