我想获取由其id
属性指定的特定节点的值。但是,我的XSL解析器Saxon的行为并不是我期望它的工作方式。比较XPath中的属性值
这是我的XSL代码:
<xsl:template match="synonyme">
<xsl:element name="corr">
<xsl:value-of select="@connecteur" />
<xsl:value-of select="/liste/connecteur[@[email protected]]/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>
。