XSLT:从 base64 内容创建图像并从 jtextpane 中的 img 标签链接到该图像
我使用这种方法在 xsl 转换器中创建图像: XSLT:将 base64 数据转换为图像文件
我的问题是,现在我如何创建引用所创建图像的 IMG 标签。 这是我所做的:
<!-- CREATE TEMP IMAGE -->
<xsl:variable name="b64" select="b64:new(string(./swe:Text/swe:value))"/>
<xsl:variable name="fos" select="fos:new(string('./temp.jpeg'))"/>
<xsl:value-of select="fos:write($fos, b64:getBinaryValue($b64))"/>
<xsl:value-of select="fos:close($fos)"/>
<a>
<xsl:attribute name="href">
<xsl:value-of select="concat('./temp', '.jpeg')"/>
</xsl:attribute>
<img>
<xsl:attribute name="src">
<xsl:value-of select="concat('./temp', '.jpeg')"/>
</xsl:attribute>
<xsl:attribute name="align">TOP</xsl:attribute>
<xsl:attribute name="width">100</xsl:attribute>
<xsl:attribute name="height">75</xsl:attribute>
</img>
</a>
我从上面获取输出并将其显示在 JTextPane 中, 但形象总是被打破的。
我想这是相对路径的问题, 但我不知道如何从 xsl 中获取绝对路径。
编辑: 好吧,事实证明我无法引用 img 标签中的相对图像,因为 JTextPanes 无法处理它。我能够使用以下命令来完成此工作:
<xsl:variable name="b64" select="b64:new(string(./swe:Text/swe:value))"/>
<xsl:variable name="fos" select="fos:new(string(concat('/temp/', @name, '.jpeg')))"/>
<xsl:value-of select="fos:write($fos, b64:getBinaryValue($b64))"/>
<xsl:value-of select="fos:close($fos)"/>
<img>
<xsl:attribute name="src">
<xsl:value-of select="concat('file:///C:/temp/', @name, '.jpeg')"/>
</xsl:attribute>
<xsl:attribute name="align">MIDDLE</xsl:attribute>
<xsl:attribute name="width">200</xsl:attribute>
<xsl:attribute name="height">150</xsl:attribute>
</img>
但我确实需要它是相对的,或者
我需要访问系统定义的临时目录。
有人知道怎么做吗?
Im useing this aproach to create an image while in an xsl transformer:
XSLT: Convert base64 data into image files
My issue is that now i what to create an IMG tag that references the created image.
Here is what I've done:
<!-- CREATE TEMP IMAGE -->
<xsl:variable name="b64" select="b64:new(string(./swe:Text/swe:value))"/>
<xsl:variable name="fos" select="fos:new(string('./temp.jpeg'))"/>
<xsl:value-of select="fos:write($fos, b64:getBinaryValue($b64))"/>
<xsl:value-of select="fos:close($fos)"/>
<a>
<xsl:attribute name="href">
<xsl:value-of select="concat('./temp', '.jpeg')"/>
</xsl:attribute>
<img>
<xsl:attribute name="src">
<xsl:value-of select="concat('./temp', '.jpeg')"/>
</xsl:attribute>
<xsl:attribute name="align">TOP</xsl:attribute>
<xsl:attribute name="width">100</xsl:attribute>
<xsl:attribute name="height">75</xsl:attribute>
</img>
</a>
Im taking the output from above and displaying it in a JTextPane,
but the image is always broken.
I imagine it's an issue with relative pathing,
but i dont know how to get the absolute path from within the xsl.
EDIT:
Ok, turns out that i cant reference images relative in the img tag because JTextPanes cant handle that. I was able to get this working using the following:
<xsl:variable name="b64" select="b64:new(string(./swe:Text/swe:value))"/>
<xsl:variable name="fos" select="fos:new(string(concat('/temp/', @name, '.jpeg')))"/>
<xsl:value-of select="fos:write($fos, b64:getBinaryValue($b64))"/>
<xsl:value-of select="fos:close($fos)"/>
<img>
<xsl:attribute name="src">
<xsl:value-of select="concat('file:///C:/temp/', @name, '.jpeg')"/>
</xsl:attribute>
<xsl:attribute name="align">MIDDLE</xsl:attribute>
<xsl:attribute name="width">200</xsl:attribute>
<xsl:attribute name="height">150</xsl:attribute>
</img>
but i really need it to either be relative or
i need to get access to the system defined temp directory.
Anybody know how to this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论