我可以从编码的UTF-8字节数组创建DOM文档吗?

Tha*_*e90 2 java xml android dom

我的情况:我有一个接受字节数组的方法.有问题的数组使用UTF-8编码,最初是XML消息.我希望能够使用DOM解析器重新构造此消息.我知道我可以通过使用a从字节数组创建一个Document ByteBuffer.唯一的问题是,如果我将它直接放在传递的字节数组上,它将创建一个损坏的文档(如果可能的话).这是因为该数组是编码的XML消息,以UTF-8编码.但是,当我通过使用decode()方法解码数组时,我得到一个CharBuffer返回:

ByteBuffer encodedData = ByteBuffer.wrap(data);
CharBuffer decodedData = Charset.forName("UTF-8").decode(encodedData);
Run Code Online (Sandbox Code Playgroud)

我不知道如何从这个构造Document,因为在DocumentBuilder中没有定义将接受CharBuffer的parse()方法....

任何人都可以帮我这个吗?

Qwe*_*rky 5

DocumentBuilder有一个parse(InputStream is)方法,您可以通过传入ByteArrayInputStream从您的字节创建的文件来创建您的文档.

Document doc = DocumentBuilder.parse(new ByteArrayInputStream(data));
Run Code Online (Sandbox Code Playgroud)