2016-04-03 4 views
-3

Ich hoffe, Sie können mir helfen, mein Problem zu lösen. Ich versuche, den inneren HTML-Code einer bestimmten HTML-Klasse in einem Swift-Array zu speichern.Speichern Sie inneren HTML-Code in einem Swift-Array

Hier ist mein HTML-Code:

<html> 
<table> 

<tr class="list"> 
<td class="list"><b>TEXT1</b></td> 
<td class="list">TEXT2</td> 
<td class="list">TEXT3</td> 
</tr> 

<tr class="list"> 
<td class="list"><b>TEXT4</b></td> 
<td class="list">TEXT5</td> 
<td class="list">TEXT6</td> 
</tr> 

... 

</table> 
</html> 

In diesem Fall wird der Swift-Array sein sollte:

let array = [ 
["TEXT1", "TEXT2", "TEXT3"], 
["TEXT4", "TEXT5", "TEXT6"], 
... 
] 

-> Es speichert der innere HTML-Code der HTML-Klasse "Liste".

Danke für Ihre Hilfe!

+0

Haben Sie sich meine Antwort angesehen? –

Antwort

1

Sie müssen die HTML analysieren und es gibt einige schöne Swift HTML Parse-Bibliotheken, wie zB:

https://github.com/tid-kijyun/Swift-HTML-Parser

diese Verwendung als Beispiel, können Sie dann die ul-Liste herausziehen und Schleife durch Die li-Tags erstellen ein Array, das Sie verwenden können, indem Sie Folgendes tun:

var liArray = Array<AnyObject>() 
let html = "theHtmlYouWannaParse" 

//Parse HTML, handle errors 
var err : NSError? 
var parser = HTMLParser(html: html, error: &err) 
if err != nil { 
    print(err) 
    exit(1) 
} 

var bodyNode = parser.body 

//Find and loop through ul tags 
if let ulNodes = bodyNode?.findChildTags("ul") { 
    for ulNode in ulNodes { 
     //Find and loop through li tags 
     if let liNodes = ulNode?.findChildTags("li") { 
      for liNode in liNodes { 
       //Add to array 
       liArray.append(liNode) 
      } 
     } 
    } 
} 
+0

Funktioniert perfekt. Vielen Dank! – Julian135

Verwandte Themen