我有一个XML文件,我从服务器下载了50k元素。我需要在tableView中显示这些50k元素。 但它消耗更多的内存。
所以我认为swift中有任何XML解析器,它允许我分类,如下一个10-20解析1到10等等。
答案 0 :(得分:1)
所有你需要的是SAX
xml解析器,如libxml2
。 DOM
解析器将无法使用50K元素解析数据,因为DOM
解析器会将整个Document Object Model
加载到内存中以构造树,然后解析节点。 SAX解析器解析块中的xml。
不幸的是,我所知道的大多数SAX
解析器都在C语言中。所以你必须在它们周围编写包装器才能使用swift项目。好消息是有教程解释如何使用它们。
这里有一些将libxml2集成到swift项目的有用链接。
http://redqueencoder.com/wrapping-libxml2-for-swift/ https://www.cocoawithlove.com/2008/10/using-libxml2-for-parsing-and-xpath.html
修改强>
您也可以使用NSXMLParser
,这是一个用Objective-C编写的SAX解析器。您可以在Swift
https://medium.com/@lucascerro/understanding-nsxmlparser-in-swift-xcode-6-3-1-7c96ff6c65bc