6

我正在将一些在我的桌面上运行良好的 Java 代码移植到 Android。我有以下代码段:

import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLReaderFactory;
// ...
XMLReader p = XMLReaderFactory.createXMLReader();

在最后一行我得到以下异常:

Can't create default XMLReader; is system property org.xml.sax.driver set?

当我在桌面上测试代码时,它运行良好。为什么我在 Android 上遇到此异常,我该如何解决?谢谢!

4

3 回答 3

11

我的解决方案是在我的 MainActivity 中包含以下代码:

System.setProperty("org.xml.sax.driver","org.xmlpull.v1.sax2.Driver");
于 2015-07-07T15:57:49.700 回答
9

我在将一些代码移植到 Android 时遇到了同样的问题。我发现创建自己的工厂和解析器似乎可行。

我会尝试替换这个:

XMLReader p = XMLReaderFactory.createXMLReader();

有了这个:

SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
SAXParser newSAXParser = saxParserFactory.newSAXParser();
XMLReader p = newSAXParser.getXMLReader();

希望这可以帮助 :)

于 2013-12-05T09:55:44.673 回答
1

Resolved by following Parsing an XML File Using SAX (The Java™ Tutorials > Java API for XML Processing (JAXP) > Simple API for XML)

于 2012-04-19T13:29:15.203 回答