XSL 节点选择会导致 XPath 语法错误



我正在使用Apache FOP生成PDF。

我有以下 XSL 转换:

<fo:block>
<xsl:choose>
<xsl:when test="$data/mainNode/childNode/code = someFeature/someCode">
<xsl:value-of select="$data/mainNode/childNode/[code=someFeature/someCode]/value" />                
</xsl:when>
<xsl:otherwise>
<xsl:text>Bar</xsl:text>
</xsl:otherwise>
</xsl:choose>
</fo:block>

XML 结构示例:

<mainNode>
<childNode>
<code>A</code>
<value>1</value>
</childNode>
<childNode>
<code>B</code>
<value>2</value>
</childNode>
<childNode>
<code>C</code>
<value>3</value>
</childNode>
</mainNode>

通过Oxygen XML编辑器运行时,出现错误:XPST0003: To use XPath 3.1 syntax, you must configure the XPath parser to handle it。引擎是 Saxon-PE 9.7.0.15。

问题是第 4 行,我试图从与someFeature/someCode返回的代码相同的childNode中获取值。

有什么方法可以重写它,这样我就不会收到错误?

我认为你想要的不是$data/mainNode/childNode/[code=someFeature/someCode]/value$data/mainNode/childNode[code=current()/someFeature/someCode]/value.

最新更新