嘿,我正在尝试使用VTD-XML来解析作为String给出的XML,但我找不到如何做到这一点。任何帮助将不胜感激。
答案 0 :(得分:5)
似乎VTD-XML库允许您读取字节数组数据。在这种情况下,我建议使用正确的编码将String转换为字节。
如果在XML字符串的开头发出了编码信号:
<?xml version="1.0" encoding="UTF-8"?>
然后使用:
myString.getBytes("UTF-8")
如果没有编码,请使用一个,对于VTD-XML知道如何解码字节:
String withHeader = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + myString;
byte[] bytes = withHeader.getBytes("UTF-8");
VTDGen vg = new VTDGen();
vg.setDoc(bytes);
vg.parse(true);
请注意,在后一种情况下,您可以使用任何有效的编码,因为您在内存中的字符串是encoding-agnosting(它是UTF-16,但是当您要求转换的字节时)。
答案 1 :(得分:2)
VTD-XML不接受字符串,因为字符串意味着UCS-16编码,这意味着它实际上不是xml文档..如规范所定义,xml通常以utf-8编码,ascii,iso- 8859-1或UTF-16LE或BE格式...我的回答是否有意义?