移植到Android:为什么我得到"无法创建默认的XMLReader;是系统属性org.xml.sax.driver设置?"?

I Z*_*I Z 5 android sax xmlreader

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

import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLReaderFactory;
// ...
XMLReader p = XMLReaderFactory.createXMLReader();
Run Code Online (Sandbox Code Playgroud)

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

Can't create default XMLReader; is system property org.xml.sax.driver set?
Run Code Online (Sandbox Code Playgroud)

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

小智 9

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

我试着替换这个:

XMLReader p = XMLReaderFactory.createXMLReader();
Run Code Online (Sandbox Code Playgroud)

有了这个:

SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
SAXParser newSAXParser = saxParserFactory.newSAXParser();
XMLReader p = newSAXParser.getXMLReader();
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助 :)


art*_*nig 6

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

System.setProperty("org.xml.sax.driver","org.xmlpull.v1.sax2.Driver");
Run Code Online (Sandbox Code Playgroud)