我正在使用xsl fo和Java从XML生成PDF。我需要在我的6列表的一列中嵌入一个超链接。这是我的代码片段。
<fo:table-row>
<xsl:for-each select="./clientMain/hierarchy/link">
<fo:table-cell border="solid 1px black" text-align="left" font-size="10pt"><fo:block>Hierarchy</fo:block></fo:table-cell>
<fo:table-cell border="solid 1px black" text-align="left" font-size="9pt">
<fo:block><a>
<xsl:attribute name="href"><xsl:value-of select="@link"/></xsl:attribute>
</a></fo:block>
<fo:block><xsl:value-of select="@link"/></fo:block></fo:table-cell>
</xsl:for-each>
</fo:table-row>
但我的程序因此错误而失败:
javax.xml.transform.TransformerException: org.apache.fop.fo.ValidationException: "fo:table-row" is missing child elements. Required content model: (table-cell+) (No context info available)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:718)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2336)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:682)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2336)
at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:682)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2336)
如果我评论这一行,一切正常。请帮忙 !!!!
答案 0 :(得分:3)
“fo:table-row”的解决方案不是缺少子元素的错误,而是:
查看您的代码,我希望链接不起作用。而不是<a>
标记,请使用<fo:basic-link internal-destination="@link" color="blue">
。
这假设@link包含对PDF中某处ID的引用。
对于外部链接,请使用<fo:basic-link external-destination="url">