用xml读取带有二进制数据的cdata

时间:2016-06-28 12:57:27

标签: java xml sax

我有一个XML作为SOAP Web服务的响应。 XML就像下面的那样 -

<![CDATA[<?xml version="1.0" encoding="UTF-8"?><pro_code>ABCE096</pro_code>  <pdf_stream>JVBERi0xLjQKJeLjz9MKMSAwIG9iajw8L0Jhc2VGb250L1RpbWVzLVJvbWFuL1R5cGUvRm9udC9F&#13;</pdf_stream>]]>

通过使用以下我已经选择了PRO_CODE

xpath.compile("//illustrations/product_code/text()").evaluate(doc, XPathConstants.NODESET))....

但是,pdf_stream是一个byteStream。我如何阅读并转换为PDF?

1 个答案:

答案 0 :(得分:0)

您的pdf内容显然是以Base64编码的。如果使用Java 8,则可以使用Base64.getDecoder().decode(String)对其进行解码。

您可以找到有关Base64解码器here的更多详细信息。

如果您不使用Java 8,仍然可以使用Apache Commons Codec中的Base64

NB:您有一个需要首先删除的尾随HTML实体(&amp;#13)