xsl : value-of select = "…에 문자열을 연결하는 방법?


92
<a>
    <xsl:attribute name="href"> 
     <xsl:value-of select="/*/properties/property[@name='report']/@value" />
    </xsl:attribute>
</a>    

다른 문자열을 cancat 할 수있는 방법이 있습니까?

<xsl:value-of select="/*/properties/property[@name='report']/@value"  />

보고서 속성 값 외에도 href 속성에 텍스트를 전달해야합니다.

답변:


149

여기에서 concat 이라는 이름이 꽤나 뚜렷한 xpath 함수를 사용할 수 있습니다.

<a>
   <xsl:attribute name="href">
      <xsl:value-of select="concat('myText:', /*/properties/property[@name='report']/@value)" />
   </xsl:attribute>
</a>  

물론 여기에서 텍스트 일 ​​필요는 없으며 요소 나 속성을 선택하기위한 또 다른 xpath 표현식이 될 수 있습니다. 그리고 concat 표현식에 여러 인수를 가질 수 있습니다.

여기에서 속성 값 템플릿 (중괄호로 표시됨)을 사용하여 표현식을 단순화 할 수 있습니다.

<a href="{concat('myText:', /*/properties/property[@name='report']/@value)}"></a>

2
@TimC : 좋지만 concat()여기 에는 기능이 필요하지 않습니다.
Dimitre Novatchev

다음 태그가 있습니다. <a title="" href="https://stackoverflow.com/page.cfm?id=425">Anders, John</a>XSLT에 ID # 만 사용하는 숨겨진 필드를 만들고 싶습니다. 어떻게 할 수 있습니까?
SearchForKnowledge

27

세 가지 답변 :

단순함 :

<img>
    <xsl:attribute name="src">
        <xsl:value-of select="//your/xquery/path"/>
        <xsl:value-of select="'vmLogo.gif'"/>
    </xsl:attribute>
</img>

'concat'사용 :

<img>
    <xsl:attribute name="src">
        <xsl:value-of select="concat(//your/xquery/path,'vmLogo.gif')"/>                    
    </xsl:attribute>
</img>

@TimC에서 제안한 속성 바로 가기

<img src="{concat(//your/xquery/path,'vmLogo.gif')}" />

2
Dimitre가 언급했듯이 여기에는 concat이 필요하지 않습니다.<img src="{//your/xpath}vmLogo.gif" />
Svish


5

정적 텍스트 문자열을 선택한 값에 연결하는 가장 쉬운 방법은 다음을 사용하는 것입니다. 요소.

<a>
  <xsl:attribute name="href"> 
    <xsl:value-of select="/*/properties/property[@name='report']/@value" />
    <xsl:text>staticIconExample.png</xsl:text>
  </xsl:attribute>
</a>

1

가장 쉬운 방법은

  <TD>
    <xsl:value-of select="concat(//author/first-name,' ',//author/last-name)"/>
  </TD>

XML 구조가

<title>The Confidence Man</title>
<author>
  <first-name>Herman</first-name>
  <last-name>Melville</last-name>
</author>
<price>11.99</price>

0

가장 읽기 쉬운 솔루션은 아니지만 value-of의 결과를 일반 텍스트와 혼합 할 수 있습니다.

<a>
  <xsl:attribute name="href"> 
    Text<xsl:value-of select="/*/properties/property[@name='report']/@value"/>Text
  </xsl:attribute>
</a>

1
여기에는 몇 가지 문제가 있습니다. XSLT 명령어 사이에는 공백 만 텍스트 노드가 무시됩니다. 그러나 이제 공백이 아닌 텍스트 노드 ( ' Text')가 있으므로 공백 (새 줄 포함)이 출력됩니다.
Alejandro
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.