English 中文(简体)
How to Decode base 64 data
原标题:

I have an XML doucment in which there is an tag for image like this

if there is an image then the tag would be as follows

<thumbnail>
<type>IMAGE JPG</type>
<data> base64 data </data>
</thumbnail>

And if there is no image then

<thumbnail/>

I want to get the base64 encoded image using DOM parser and how to handle tags which don t have any image like <thumbnail/>

In the XML document there will be any number of tags.

最佳回答

The COS package has a Base64Decoder. Apache Commons Codec offers an alternative. Also one may use sun.misc.BASE64Decoder, but that makes one s code Sun JDK-specific.

问题回答

As an alternative to DOM coding, you could do it declaratively in an XSLT stylesheet.

XSLT does not have any built-in features to base64 decode, but you can use the Saxon extension function xs:base64Binary-to-octet to stream it out to a file using the Java FileOutputStream in an XSLT stylesheet:

 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    version="2.0" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:saxon="http://saxon.sf.net/"
    xmlns:fos="java.io.FileOutputStream">

    <xsl:template match="/">
     <!--Your example did not reveal the document structure.
     Assuming thumbnail elements are children of the document element-->
  <xsl:apply-templates select="*/thumbnail" />
    </xsl:template>

    <!--For thumbnail elements that contain data, decode the BASE64 encoded content and write to file -->
    <xsl:template match="thumbnail[data]">
       <xsl:variable name="img" select="concat( c:	est , position(),  .jpg )"/>
       <xsl:variable name="fos" select="fos:new(string($img))"/>
       <xsl:value-of select="fos:write($fos,saxon:base64Binary-to-octets(xs:base64Binary(data/text())))"/>
       <xsl:value-of select="fos:close($fos)"/>
    </xsl:template>

 <!--Do nothing with empty thumbnail elements-->
 <xsl:template match="thumbnail" />

</xsl:stylesheet>




相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签