2015-12-28 4 views
0

Использование импорта Канна Сейчас я разборе HTML, используя следующий код:Swift 2 синтаксического анализа HTML и найти конкретные узлы

if let doc = Kanna.HTML(url: NSURL(string: "https://en.wikipedia.org/wiki/Data")!, encoding: NSUTF8StringEncoding) { 

     // Search for nodes by XPath 
     for link in doc.xpath("/html/head...") { 
      primaryDisplay.text!=link.text! 
      print(link.text) 
     } 
    } 
} 

Я задавался вопросом, как определить «узлов» (не уверен, если это правильно термин) в/на HTML-страницу для разбора конкретных данных, я хочу ...

Вот изображение, которое показывает, что это я хотел бы знать ... Я думаю ...

Image

+0

Я не предлагаю вам разобрать HTML, что вы не владеете. Поскольку это может измениться в любой момент, и ваш парсер вернет nil – Anton

+0

@ Антон, который не должен быть проблемой в краткосрочной перспективе, но спасибо за совет. –

+0

@ Антон, если вы его правильно напишете, это не проблема –

ответ

0

Простой способ сделать то, что вы найти использует SwiftSoup

Попробуйте это:

do{ 
      let html = "<!DOCTYPE html>" + 
       "<html>" + 
       "<head>" + 
       "<title>Some webpage</title>" + 
       "</head>" + 
       "<body>" + 
       "<p class='normal'>This is the first paragraph.</p>" + 
       "<p class='special'><b>this is in bold</b></p>" + 
       "</body>" + 
      "</html>"; 

      let doc: Document = try SwiftSoup.parse(html) 
      let els: Elements = try doc.getElementsByClass("special") 
      let special: Element? = els.first()//get first element 
      print(try special?.text())//"this is in bold" 
      print(special?.tagName())//"p" 
      print(special?.child(0).tag().getName())//"b" 

     }catch Exception.Error(let type, let message) 
     { 
      print("") 
     }catch{ 
      print("") 
     } 
Смежные вопросы