2011-03-30 26 views
1

有沒有辦法在SAX解析器上配置特性/屬性,以便它匹配默認的Android?如何在Sun JVM中配置SAX解析器以匹配Android?

我已經實現了一個Atom提要的SAX解析器,我希望能夠通過InstrumentationTestCase對其進行單元測試,而無需運行它。我馬上看到的差異是,在startElement()中,localName在Android上運行時具有元素名稱,但在Sun JVM下運行時會填充「name」方法參數。另外,在Sun JVM上運行時忽略空格,但在Android上不運行。

回答

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

可能需要將解析器配置爲可識別名稱空間,並將「http://apache.org/xml/features/dom/include-ignorable-whitespace」功能設置爲true。

+0

這是一個DOM功能,而不是SAX功能。 – 2011-03-30 18:13:44

+0

哦,好點。在我的閱讀中肯定錯過了這一點。 – jtahlborn 2011-03-31 23:48:05