我发现这个 JCabi 片段代码适用于 UTF-8 xml 编码文件,它基本上读取 xml 文件,然后将其打印为字符串。
XML xml;
try {
xml = new XMLDocument(new File("test8.xml"));
String xmlString = xml.toString();
System.out.println(xmlString);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
但是我需要这个在 UTF-16 编码的 xml 上运行相同的代码,它给了我以下错误:
[致命错误]:1:1:序言中不允许内容。线程“AWT-EventQueue-0”java.lang.IllegalArgumentException 中的异常:无法解析,很可能 XML 无效
引起:org.xml.sax.SAXParseException;行号:1;列号:1;序言中不能有内容。
我已经阅读了有关此错误的信息,这意味着解析器无法识别序言,因为它看到了由于编码而不应该存在的字符。
我已经尝试过其他库,它们提供了一种“告诉”编码源文件的类的方法,但是我能够让它在某种程度上工作的唯一库是 JCabi,但我找不到告诉它我的源文件是用 UTF-16 编码的方法。
谢谢,任何帮助表示赞赏。