相对于PC/server,Android设备速度较慢,内存更少,因此在Android上处理XML的最佳方式是什么?我有一组非常复杂的XML需要解析。使用SAX或DOM都会导致大量代码。是否有好的建议?我希望使其清晰快速。
XMLPullParser
。您可以在此处查看所有三个解析器的性能。
http://www.developer.com/ws/article.php/10927_3824221_2/Android-XML-Parser-Performance.htm
也有一些第三方的XML解析器可供使用...我曾经在我的一个应用程序中使用过这个解析器,速度相当快。它内置了XPath实现。你最好选择SAX或XMLPull。Android为两者都提供了API。这里的主要区别是:
以下是XmlPull解析的示例:
try {
reader = new InputStreamReader(...from soem input stream);
XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser();
parser.setInput(reader);
parser.require(XmlPullParser.START_DOCUMENT, null, null);
// get the event type
int eventType = parser.getEventType();
// see what type of event it is...
while(eventType != XmlPullParser.END_DOCUMENT) {
String pName = parser.getName();
switch(eventType) {
case XmlPullParser.START_TAG:
if(pName.equals("sometag")) {
// get the textcontent
String msg = parser.nextText();
// get attribute value
String strErrCode = parser.getAttributeValue(null, "somattr");
break;
case XmlPullParser.END_TAG:
if(pName.equals("sometag")) {
// do something
}
break;
default:
break;
}
eventType = parser.next(); // parse next and generate event
} // while loop
}catch(Exception e) {
String msg = e.getMessage();
Log.e(TAG, "Error while parsing response: " + msg, e);
}
这里是一个快速介绍,讲述如何进行拉取解析
XMLPullParser 看起来是最好的选择。 请查看XmlPull v1 API的快速介绍。
以下链接还有其他您可以使用的选项: