我正在使用XSLT 1.0和Groovy将XML转换为PDF文档。当我的表以PDF格式呈现时,XSLT会在每列中插入Doc Link,而我的要求是在XML中找不到链接时在列中呈现空白空间
<fo:table-cell border="solid 1px black">
<xsl:variable name="link"><xsl:value-of select="link/text()"/</xsl:variable>
<xsl:variable name="space" select="'     '"/>
<fo:block>
<xsl:choose>
<xsl:when test="$link">
<fo:basic-link external-destination="url({$link})" color="blue" text-decoration="underline">Doc Link</fo:basic-link></xsl:when>
<xsl:otherwise><xsl:value-of select="$space"/></xsl:otherwise>
</xsl:choose>
</fo:block>
可能是因为Groovy?如果是,我该如何解决?
答案 0 :(得分:2)
正如@dave指出的那样,你已陷入我今天早些时候在Can we have multiple script function in for <xsl:value-of /> element
中所描述的陷阱您需要替换
<xsl:variable name="link"><xsl:value-of select="link/text()"/</xsl:variable>
与
<xsl:variable name="link" select="link/text()"/>
我不知道为什么这个错误如此常见,因为正确的代码比不正确的代码更短更简单。