【发布时间】:2016-11-20 05:46:25
【问题描述】:
我想获取由其id 属性指定的特定节点的值。但是我的 XSL 解析器 Saxon 的行为并不是我预期的那样工作。
这是我的 XSL 代码:
<xsl:template match="synonyme">
<xsl:element name="corr">
<xsl:value-of select="@connecteur" />
<xsl:value-of select="/liste/connecteur[@id=@connecteur]/forme[1]" />
</xsl:element>
</xsl:template>
我刚刚匹配了一个名为synonyme 的标签,它有一个connecteur 属性。我的代码输出了这个属性的值。
我还想输出另一个节点的值,该节点的 id 属性与我当前匹配的 synonyme 标记的 connecteur 属性匹配。但是这个查询没有找到任何结果,第二个value-of 总是有空输出。
如果我写,例如[@id='c160'],其中c160 与第一个value-of 输出的内容完全相同,它可以工作!但与我的匹配节点的@attribute 相比时不是这样。我该如何解决这个问题?
XML 基本上是
<liste><connecteur id="c160"><forme>foo</forme></connecteur>
<connecteur id="c161"><synonyme connecteur="c160" /></connecteur>
</liste>
代替synonyme 的预期输出是<corr>c160 foo</corr>。
【问题讨论】: