在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