2017-01-31 1 views
0

idref가 가리키는 요소의 태그 값을 얻으려고합니다. id reffferenced by id ref를 얻는 중

<ksiazka id="k2"> 
    <title> title 1 </title> 
    <wydawnictwo idref="wyd1"/> 
</ksiazka> 

<wyd id="wyd1"> 
    <name>Zielona Sowa</name> 
</wyd> 

은> < WYD에서 ksiazka> 내가 할 일은

<xsl:template match="ksiazka"> 
    <xsl:value-of select "./title"/> 

하지만 어떻게 얻을 < 이름>입니다 <의 제목을 얻으려면? 어떤 제안?

답변

0

XSLT에는 상호 참조를 확인하기 위해 build-in mechanism이 있습니다. 그럼 당신은 사용할 수 있습니다

<xsl:key name="pub" match="wyd" use="@id" /> 

: 같은 스타일 시트의 최상위 수준에 를 정의하여 시작

<xsl:value-of select="key('pub', wydawnictwo/@idref)/name"/> 

ksiazka의 맥락에서 해당 wyd/name를 얻을 수 있습니다.


여기 데모보기 : http://xsltransform.net/94AbWBE

1

확인을, 나는 그것을 수행하는 방법을 알아 냈어.

<xsl:key name = "wydawnictwoKEY" match= "wyd" use = "@id" /> 

<xsl:template match="wydawnictwo"> 
     <xsl:copy> 
      <xsl:value-of select="key('wydawnictwoKEY', @idref)/name"/> 
     </xsl:copy> 
</xsl:template>    

다음

<xsl:apply-templates select="wydawnictwo"/>