在iOS中,我想在下载时解析服务器中的XML流。它不应该等到服务器完成构建XML并下载完成。服务器以“块”形式构建XML并将其直接发送给客户端。在我的应用程序中,我有一个UITableView
,它应该在我从服务器收到XML时立即显示XML的元素。解析XML文件,无需等待Swift中的完整下载
我试过用XMLParser(contentsOf: URL)
构造函数,但是这首先下载整个XML然后解析它。还有另一个构造函数XMLParser(stream: InputStream)
,但我不知道如何从URLConnection
获得InputStream
。我发现的唯一的东西是this question,它已经快5年了,我无法理解它如何在Swift 3中做到这一点,如果它能够正常工作的话。
我试过的另一件事是通过Libxml2,但在那里我有内存使用或其他事情的问题(请参阅我的old question)。
如何解析XML流而不必等待Swift中的完整下载?
在Android中,我会用一个XMLPullParser
和有:
URL url = new URL(urlString);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setDoInput(true);
InputStream inputStream = connection.getInputStream();
XmlPullParserFactory xmlFactoryObject = XmlPullParserFactory.newInstance();
XmlPullParser pullParser = xmlFactoryObject.newPullParser();
pullParser.setInput(inputStream, null);
// here comes the actual parsing
我试过你的解决方案,但数据为零。我应该使用什么端口? 443的HTTPS?因为我的端点使用HTTPS,所以这个URL看起来像这样:'https://www.example.com/api/query.php?title = Test' – ElegyD