【发布时间】:2025-12-27 14:30:11
【问题描述】:
嘿,我正在尝试使用 VTD-XML 来解析作为字符串提供给它的 XML,但我找不到如何去做。任何帮助将不胜感激。
【问题讨论】:
嘿,我正在尝试使用 VTD-XML 来解析作为字符串提供给它的 XML,但我找不到如何去做。任何帮助将不胜感激。
【问题讨论】:
似乎 VTD-XML 库可以让您读取字节数组数据。在这种情况下,我建议使用正确的编码将字符串转换为字节。
如果在 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);
请注意,在后一种情况下,您可以使用任何有效的编码,因为您在内存中的字符串与编码无关(它在 UTF-16 中,但当您请求字节时,它将被转换)。
【讨论】:
VTD-XML 不接受字符串,因为字符串暗示 UCS-16 编码,这意味着它不是真正的 xml 文档。按照规范的定义,xml 通常以 utf-8、ascii、iso- 编码8859-1 或 UTF-16LE 或 BE 格式...我的回答有意义吗?
【讨论】: