2017-01-31 7 views
0

私はidrefによって参照される要素のタグの値を取得しようとしています。 idのrefferencedによってIDの値を取得する

<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

[OK]を、私はそれを行う方法を考え出しました。

<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"/> 
関連する問題