我试图获取idref引用的元素标记的值。
<ksiazka id="k2">
<title> title 1 </title>
<wydawnictwo idref="wyd1"/>
</ksiazka>
<wyd id="wyd1">
<name>Zielona Sowa</name>
</wyd>
获得&lt;的标题ksiazka&gt;我所要做的就是
<xsl:template match="ksiazka">
<xsl:value-of select "./title"/>
但是如何获得&lt;名称&gt;超出&lt; wyd&gt;?有什么建议吗?
答案 0 :(得分: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"/>
答案 1 :(得分:0)
XSLT有build-in mechanism来解决交叉引用。首先在样式表的顶层定义键:
<xsl:key name="pub" match="wyd" use="@id" />
然后你可以使用:
<xsl:value-of select="key('pub', wydawnictwo/@idref)/name"/>
从wyd/name
的上下文中获取相应的ksiazka
。
在此处查看演示:http://xsltransform.net/94AbWBE