有没有办法在SAX解析器上配置功能/属性,使其与默认的Android功能/属性匹配?
我已经为Atom feed实现了一个SAX解析器,我希望能够通过InstrumentationTestCase运行它来进行单元测试。我立即看到的差异是,在startElement()中,localName在Android上运行时具有元素名称,但在Sun JVM下运行时会填充“name”方法参数。此外,在Sun JVM上运行时会忽略空格,但在Android上则不会。
答案 0 :(得分: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);
答案 1 :(得分:-1)
可能需要将解析器配置为名称空间感知,并将“http://apache.org/xml/features/dom/include-ignorable-whitespace”功能设置为true。