我在使用xml标记内的这个值加密PKCS-7的数据,当我解析这个xml时,它给了我
致命错误:1:108:在文档的元素内容中找到无效的XML字符(Unicode: 0x6)。错误: org.xml.sax.SAXParseException:在文档的元素内容中找到无效的XML字符(Unicode: 0x6)。
请帮我解决这个问题
非常感谢
发布于 2012-08-16 19:54:09
将二进制数据封装在XML文档中的一种方法是对值进行基-64编码。否则(正如您已经发现的),数据可能包含在XML数据流中不合法的字符。XML确实允许一些控制字符,但只有U+0009 (选项卡)、U+000A (LF)和U+000D (CR)。
当然,使用base64确实需要:(a)无论您使用什么系统来生成XML,都有一个执行base64编码的函数(如果您有一个加密库来生成PKCS7,我猜您有一个base64编码函数),以及(b)所有正在使用XML的系统都知道,希望使用have 64编码的值。如果您使用XSD模式来定义数据源和数据接收器之间的契约,则可以很容易地使该模式表示所讨论的元素的值必须是基-64编码的。否则,你只需要把事实记录下来。
发布于 2012-08-16 10:11:35
在XML中不允许使用ACK字符。在解析PKCS-7字符串之前,您可能需要在XML中对它进行编码。
发布于 2012-08-16 10:14:04
https://stackoverflow.com/questions/11984902
复制相似问题