我的XML包含一个包含base64格式图像的节点。 我已经尝试了很多东西,但我无法使用xslt-fo(apache)生成PDF。
这是我要显示的XML节点:
.....
<pregunta101>
<listaImagenes>
<contenido>base64content</contenido>
<ruta>c:\\ssss\\aaaa.jpg</ruta>
<nombre>codigoFOTO</nombre>
</listaImagenes>
<listaImagenes>
.....
如果我把内容而不是“contenido”变量,它会完美地显示它,但我不能在foreach中显示它或直接读取xml节点。
<fo:table-row number-columns-spanned="2">
<fo:table-cell padding-right="10pt" padding-top="10pt" padding-left="10pt">
<xsl:for-each select="solicitude/preguntasCheckList/pregunta101/listaImagenes">
<xsl:value-of select="." />
<fo:block text-align="left">
<fo:external-graphic src="url('data:image/jpeg;base64,contenido)"/>
</fo:block>
</xsl:for-each>
</fo:table-cell>
</fo:table-row>
答案 0 :(得分:2)
仅使用在线XML-FO处理器进行测试,但如果更改
则应该可以使用<fo:external-graphic src="url('data:image/jpeg;base64,contenido)"/>
到
<fo:external-graphic src="url('data:image/jpeg;base64,{contenido})"/>
通过这种调整,我得到你的示例XML作为输入
<fo:external-graphic src="url('data:image/jpeg;base64,base64content)"/>
如果不将节点/变量名称放入大括号 - {}
中,它将仅作为文字值处理而不是被解释。