【问题标题】:How can I configure a SAX parser in the Sun JVM to match the Android one?如何在 Sun JVM 中配置 SAX 解析器以匹配 Android 解析器?
【发布时间】:2011-03-30 01:53:46
【问题描述】:
有没有办法在 SAX 解析器上配置特性/属性,使其与默认的 Android 解析器匹配?
我已经为 Atom 提要实现了一个 SAX 解析器,我希望能够在不通过 InstrumentationTestCase 运行它的情况下对其进行单元测试。我马上看到的不同之处在于,在 startElement() 中,localName 在 Android 上运行时具有元素名称,而在 Sun JVM 下运行时填充了“name”方法参数。此外,在 Sun JVM 上运行时会忽略空格,但在 Android 上则不会。
【问题讨论】:
标签:
java
android
jvm
dalvik
saxparser
【解决方案1】:
对于那些寻找经过反复试验的人来说,这两个功能似乎使它最相似。最后,由于 XML 解析的差异,我们最终将这些类型的单元测试作为仪器测试运行。
XMLReader reader = SAXParserFactory.newInstance().newSAXParser().getXMLReader();
reader.setFeature("http://xml.org/sax/features/namespaces", false);
reader.setFeature("http://xml.org/sax/features/namespace-prefixes", false);
reader.setContentHandler(handler);
reader.parse(source);
【解决方案2】:
可能需要将解析器配置为支持命名空间,并将“http://apache.org/xml/features/dom/include-ignorable-whitespace”功能设置为 true。