通过 java 在 xml 中读取带有二进制数据的 cdata

reading cdata with binary data in xml by java

我有一个 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 是一个字节流。我如何阅读并转换为 PDF?

你的pdf内容显然是用Base64编码的。如果使用 Java 8.

,则可以使用 Base64.getDecoder().decode(String) 对其进行解码

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

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

注意:您有一个尾随 HTML 实体 ( ),您需要先将其删除