0

我正在尝试获取 idref 引用的元素的标记值。

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

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

要获得 < ksiazka > 的标题,我所要做的就是

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

但是如何从 <wyd> 中取出 <name> 呢?有什么建议么?

4

2 回答 2

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"/>
于 2017-01-31T07:46:18.633 回答
0

XSLT 具有解决交叉引用的内置机制。首先在样式表的顶层定义一个键:

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

然后你可以使用:

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

wyd/name从 的上下文中获取对应的ksiazka


在此处查看演示:http: //xsltransform.net/94AbWBE

于 2017-01-31T07:32:48.080 回答