3

我在遗留 JavaME 项目中使用 kXML2。我收到一个 XML,其中一些属性包含编码的实体。当我通过调用检索该属性值时:

parser.getAttributeValue

它抛出一个异常:

XmlPullParserException: unresolved

我已经下载了这个解析器的最新版本,但它仍然显示这种行为。

如果我从 XML 中删除有问题的行,则没有错误。

4

1 回答 1

2

好的,这就是正在发生的事情:

解析器必须解码属性中的实体,除非您设置此属性:

parser.setFeature(KXmlParser.FEATURE_PROCESS_DOCDECL, true);

但是,当调用该行时,此实现会引发异常。好的,所以我调试了解析器源代码,我发现这个拉解析器实现对于不太常见的实体有问题。

所以我必须用我自己的“奇数”实体来膨胀解析器实体替换映射,这样它才能工作,如下所示:

parser.defineEntityReplacementText("Ntilde", "Ñ");

然后一切正常。

于 2012-04-16T15:53:07.900 回答