回答
它取决于你在做什么,如果你有非常大的文件,那么你应该使用SAX解析器,因为它会触发事件并释放它们,没有内容存储在内存中,并且使用SAX解析器无法访问元素一个随机的方式没有回头! ,但Dom允许您访问xml文件的任何部分,因为它将整个文件/文档保存在内存中。希望你回答这个问题。
,如果你想知道哪些最快的解析器Xerces将是最快的,你会发现和SAX解析器应该给你更多的性能比DOM
我正在寻找解析XML文档的最快方法。 不是大文件。 – Basbous 2012-01-17 11:05:48
@Basbous:SAX或XMLPullParser是最快的,但DOM更容易使用。 – 2015-10-16 18:39:39
的SAX XML解析器已经可以进入Android的SDK。
http://developer.android.com/reference/org/xml/sax/XMLReader.html
,所以很容易访问。
不同类型的解析器可以分类的一个方面是他们是否需要预先将整个XML文档加载到内存中。基于文档对象模型(DOM)的解析器这样做:他们将XML文档解析为树结构,然后可以遍历内存中的内容来读取其内容。这允许您以任意顺序遍历文档,并产生一些有用的API,这些API可以放在DOM之上,例如XPath,这是一种专门用于从树中提取信息的路径查询语言。单独使用DOM并不是什么好处,因为它的API笨重,即使不需要,也总是将所有内容都读入内存,这是很昂贵的。因此,在大多数情况下,DOM解析器不是在Android上解析XML的最佳选择。
有一类解析器不需要预先加载文档。这些解析器是基于流的,这意味着它们在仍从数据源(Web或磁盘)中读取XML文档的同时处理XML文档。这意味着 您没有像DOM一样随机访问XML树,因为没有维护文档的内部表示。流解析器可以进一步相互区分。有推送解析器,在流式传输文档时,会在遇到新元素时回拨给您的应用程序。 SAX解析器属于这个类。然后是拉解析器,它们更像是迭代器或游标:这里客户端必须明确地要求下一个要检索的元素。
来源:Android实践。
- 1. SAX解析器vs XMLPull解析器
- 2. XML解析 - ElementTree的VS SAX和DOM
- 3. DOM vs SAX Java
- 4. 解析色VS解析INT
- 5. mod_rewrite vs php解析
- 6. 用SDcard解析XmlPullParser
- 7. 的Android - 解析使用SAX解析器
- 8. 解析JSON VS iOS中解析XML
- 9. php json_decoding vs xml解析
- 10. CR vs LF perl解析
- 11. 解析XML XmlPullParser安卓
- 12. Xmlpullparser解析嵌套项目
- 13. Android SAX解析器
- 14. SAX解析异常
- 15. SAX解析问题
- 16. SAX解析器。如何阻止SAX解析器连接到Internet?
- 17. 使用android sax解析器解析XML
- 18. SAX XML解析器或DOM解析器?
- 19. 使用sax解析器解析XML
- 20. SAX解析器不解析specal字符 “&”
- 21. 亚马逊SNS VS PubNub VS解析了的WebRTC
- 22. .NET中的速度和XML解析 - 序列化vs XML DOM vs?
- 23. XmlPullParser的模糊解释.END_DOCUMENT
- 24. CLojure sax解析器示例
- 25. 麻烦与SAX解析器
- 26. Sax从Web服务解析
- 27. 运行Sax解析器
- 28. 多级XML SAX解析器
- 29. SAX和逐行解析Java
- 30. LibXML2 Sax解析和符号
可能的重复[Android:最佳XML解析库?](http://stackoverflow.com/questions/3926367/android-best-xml-parsing-library) – 2012-01-17 10:55:26
最好的教程,你有这[这里]( http://totheriver.com/learn/xml/xmltutorial.html#5.4)。 – 2012-01-17 10:58:01
好教程链接@LalitPoptani ......... – Lucifer 2012-01-17 11:00:19