1

我正在尝试使用 jdom 打开和读取 xml 文件作为本地资源。我可以打开该文件,但随后我收到一条错误消息,提示该 xml 文件格式不正确。这是代码:

Uri path = Uri.parse("android:resource://package_name"+R.xml.data);
InputSource source = new InputSource(new StringReader(path.toString()));
document = builder.build(source);

我收到以下错误:

org.jdom.input.JDOMParseException:Error on line 1:At line 1, column 17:not well-formed (invalid token)

这是包含我的数据的 xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<data>
  <person>
    <name>Name1</name>
    <firstname>Firstname1</firstname>
  </person>
  <person>
    <name>Name2</name>
    <firstname>Firstname2</firstname>
  </person>
</data>

你有什么想法吗?提前致谢。

4

2 回答 2

4

您的 InputSource 没有读取资源,它正在读取资源的路径(这不是格式正确的 XML 文件:))

如果您在 Android 中包含 XML 资源,它将在构建时预先解析,因此您不想使用 JDOM 来读取它。(如果您真的想将其读入 DOM,请将其作为原始资源包含在内)

相反,使用Resources.getXml(R.xml.data),它将返回一个 XmlPullParser

如果您在 DOM 中需要它,请将其与 raw/ 资源放在一起,然后从 openRawResource() 获取您的 InputSource 阅读器

于 2011-12-14T17:15:08.890 回答
2

我不确定您是否正确引用了该文件,因为 XML 文件看起来不错。我会检查您为文件指定的路径,因为 R.xml.data 只会返回一个 int,而不是文件名。

于 2011-12-14T17:11:56.897 回答