2017-11-25 23 views
0

swiftsoup 라이브러리와의 링크에서 html을 구문 분석해야하는 iOS 앱을 개발 중입니다. 나는 해냈다. 그러나 모든 테이블 데이터를 문자열로 표시합니다. 별도의 배열에 저장해야하는 별도의 데이터를 가져와야합니다. 여기 html 테이블 데이터를 신속하게 문자열 배열로 구문 분석하는 방법은 무엇입니까?

는 테이블 :

 <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 - 7:20 AM, Royalmore &를 통해 백업 할 것은 Ferighat는 일이 될 것입니다 ored 4 분리 된 배열.

답변

0

행 당 하나의 배열 또는 한 개의 배열 당 저장하려는 것인지 확실하지 않습니다. 하나의 행에 하나의 배열로 저장하는 방법은 다음과 같습니다. (제대로 대신 모든 try!의 오류를 프로덕션 환경에서이 작업을 수행 할 경우 처리)

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) 

: 당신이 원하는 스타일 오티 변환 map 또는 다른 배열 변환을 사용하여