我一直在努力尝试在一个小测试 android 应用程序中解析一个基本的 xml 文件。
我的代码如下:
InputStream is = getResources().openRawResource(R.xml.content);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is,"UTF-8"); //Blows up right here.
// Bunch more stuff here
}
我的 xml 如下所示:
<?xml version="1.0" ?>
<main>
<background>
<defintion>This is a test</defintion>
</background>
</main>
问题是当我尝试解析这个时,我得到一个org.xml.sax.SAXParseException: Unexpected token (position:TEXT unprintable characters here ...@3:252 in java.io.InputStreamReader@411f3898)
错误。我四处搜索,发现所有其他解决方案似乎都不起作用。
我仔细检查了该文件是否为 UTF-8,并使用 notepad++ 在 UTF-16 和 UTF-8 之间来回更改了它的编码(尝试使用和不使用 BOM),并更新了程序以正确反映这一点,但无论如何我有,我总是得到这个错误。我敢肯定我一定是遗漏了一些非常明显的东西,但无论我尝试什么系列的组合,这总是失败。