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

时间:2011-02-18 11:17:42

标签: java android xml dom

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

ByteBuffer encodedData = ByteBuffer.wrap(data);
CharBuffer decodedData = Charset.forName("UTF-8").decode(encodedData);

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

有人可以帮我吗?

1 个答案:

答案 0 :(得分:5)

DocumentBuilderparse(InputStream is)方法,您可以通过传入从您的字节创建的ByteArrayInputStream来创建文档。

Document doc = DocumentBuilder.parse(new ByteArrayInputStream(data));