当<xsl:otherwise>为true时,创建空列空间

时间:2017-06-28 19:37:58

标签: xslt whitespace

我正在使用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="'&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;'"/>
    <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?如果是,我该如何解决?

1 个答案:

答案 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()"/>

我不知道为什么这个错误如此常见,因为正确的代码比不正确的代码更短更简单。