我正在使用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 Editor运行时,我收到错误消息:XPST0003: To use XPath 3.1 syntax, you must configure the XPath parser to handle it
。发动机是Saxon-PE 9.7.0.15。
问题是第4行,我试图从childNode
获取与someFeature/someCode
返回的代码相同的代码。
有什么方法可以重写这个,所以我不会收到错误吗?
答案 0 :(得分:1)
我认为不是$data/mainNode/childNode/[code=someFeature/someCode]/value
而是$data/mainNode/childNode[code=current()/someFeature/someCode]/value
。