2017-11-25 167 views
0

我正在開發一個iOS應用程序,我需要從swiftsoup庫鏈接中解析html。我已經做了。但它將所有表格數據顯示爲一個字符串。我需要獲取單獨的數據,這些數據應該存儲在單獨的數組中。如何將html表數據解析爲swift中的字符串數組?

下面是表:

 <table width="880" border="1" cellspacing="0" cellpadding="0"> 
     <tr> 
     <td width="81"><strong>Trip Name </strong></td> 
     <td width="159"><div align="center"><strong>Starting Time from Campus </strong></div></td> 
     <td width="186"><div align="center"><strong>Starting Spot &amp; Time </strong></div></td> 
     <td width="444"><strong>Remarks</strong></td> 
     </tr> 
     <tr> 
     <td><div align="center">Normal-1</div></td> 
     <td><div align="center">6:30 AM </div></td> 
     <td>Rupsha, 7:20 AM </td> 
     <td>Will back via Royalmore &amp; Ferighat </td> 
     </tr> 
     <tr> 
     <td><div align="center">Normal-1</div></td> 
     <td><div align="center">6:45 AM </div></td> 
     <td>Moylapota, 7:25 AM </td> 
     <td>Will back via Shibbari - Sonadangha </td> 
     </tr> 


    </table> 

而且我已經做了解析像 線路名稱從校園開始時間開始現貨&時間備註普通-1

的代碼中,我使用的字符串:

let doc: Document = try! SwiftSoup.parse(html) 

for element: Element in try! doc.select("table[width=880]") 
{ 
    let linkText : String = try! element.text(); 
    print(linkText) 
} 

的普通-1,6:30 AM,7:20 AM,通過Royalmore &會支持Ferighat將成爲ST獨立陣列4。

回答

0

我不確定您是要將其存儲爲每行一列還是每列一列。以下是您可以如何將其存儲爲每行一行的樣式。使用map或其他陣列轉換將其轉換加時賽你想要的風格:

var tableContent = [[String]]() 
let document = try! SwiftSoup.parse(html) 
for row in try! document.select("table[width=\"880\"] tr") { 
    var rowContent = [String]() 

    for col in try! row.select("td") { 
     let colContent = try! col.text() 
     rowContent.append(colContent) 
    } 
    tableContent.append(rowContent) 
} 

print(tableContent) 

(如果你這樣做在生產,處理錯誤,而不是正常的所有try!