如何将 html table 数据解析为 swift 中的字符串数组?
How to parse html table data to array of string in swift?
我正在开发一个 iOS 应用程序,我需要在其中使用 swiftsoup 库从 link 解析 HTML。我已经做了。但它将所有 table 数据显示为字符串。我需要获取单独的数据,这些数据应该存储在单独的数组中。
这里是 table:
<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 个单独的数组。
我不确定您是要将其存储为每行一个数组还是每列一个数组。以下是如何以每行一个数组的方式存储它。使用 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!
)
我正在开发一个 iOS 应用程序,我需要在其中使用 swiftsoup 库从 link 解析 HTML。我已经做了。但它将所有 table 数据显示为字符串。我需要获取单独的数据,这些数据应该存储在单独的数组中。
这里是 table:
<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 个单独的数组。
我不确定您是要将其存储为每行一个数组还是每列一个数组。以下是如何以每行一个数组的方式存储它。使用 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!
)