html
  • ios
  • css
  • swift
  • parsing
  • 2016-12-29 19 views -2 likes 
    -2

    我有一個複雜的HTML,我想解析,查找和操作一些元素。Swift html解析,查找,操縱和導出

    有人可以說明如何處理這個例子的HTML?

    "<!DOCTYPE html>" + 
    "<html>" + 
    "<head>" + 
    "<title>Page Title</title>" + 
    "</head>" + 
    "<body>" + 
    "<h1>This is a Heading</h1>" + 
    "<p class='paragraph'>This is a paragraph.</p>" + 
    "<p class='paragraph'>This is a paragraph 2.</p>" + 
    "</body>" + 
    "</html>"; 
    

    回答

    0

    一個簡單的方法做,你發現使用SwiftSoup是與現實世界的HTML工作迅捷的庫。

    https://github.com/scinfu/SwiftSoup

    這裏的示例代碼:

    do{ 
          let html = "<!DOCTYPE html>" + 
           "<html>" + 
           "<head>" + 
           "<title>Page Title</title>" + 
           "</head>" + 
           "<body>" + 
           "<h1>This is a Heading</h1>" + 
           "<p class='paragraph'>This is a paragraph.</p>" + 
           "<p class='paragraph'>This is a paragraph 2.</p>" + 
           "</body>" + 
          "</html>"; 
    
          let doc: Document = try SwiftSoup.parse(html) 
          let els: Elements = try doc.getElementsByClass("paragraph") 
          let el: Element? = els.first()//get first element 
          print(try "\(el?.text())")//This is a paragraph. 
          try el?.text("New paragraph") 
          print(try "\(el?.text())")//New paragraph 
    
    
          //add new element 
          let newNode: Element = Element(try Tag.valueOf("em"), "") 
          try newNode.appendText("four") 
          try doc.body()?.appendChild(newNode) 
    
          //add html 
          try doc.body()?.append("<p>new html</p>") 
    
          print(try doc.html()) 
         }catch Exception.Error(let type, let message) 
         { 
          print("") 
         }catch{ 
          print("") 
         } 
    

    在這裏新的HTML:

    <!doctype html> 
    <html> 
    <head> 
        <title>Page Title</title> 
    </head> 
    <body> 
        <h1>This is a Heading</h1> 
        <p class="paragraph">New paragraph</p> 
        <p class="paragraph">This is a paragraph 2.</p> 
        <em>four</em> 
        <p>new html</p> 
    </body> 
    </html> 
    
    相關問題