Как разобрать данные таблицы HTML в массив строк в Swift?
Я разрабатываю приложение для iOS, в котором мне нужно проанализировать HTML по ссылке с библиотекой swiftsoup. Я сделал это. Но он показывает все данные таблицы в виде строки. Мне нужно получить отдельные данные, которые должны храниться в отдельных массивах.
Вот таблица:
<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 & 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 & 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>
И я сделал, чтобы разобрать строку, такую как название поездки, время начала из кампуса, начальная точка и время Примечания Normal-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)
}
Normal-1, 6:30AM, 7:20AM, Вернется через Royalmore & Ferighat, будет храниться 4 отдельных массива.
1 ответ
Я не уверен, хотите ли вы сохранить его как один массив на строку или один массив на столбец. Вот как вы можете хранить его в стиле "один массив на строку". использование 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!
)