まずこちらの記事を読んで欲しいです!
https://qiita.com/syamaoka/items/49d2750cc2d6599fbfa0
こちらの記事で説明されていることとと同様のことをやろうと思い試してみたのですが、動画の表示や画像の表示はどのようにすればいいのか分からず質問してしまいました。以下のコードでhtmlを解析しているのですが、動画は<p><iframe ...></p>という構造になっており、以下のコードからpタグは取り出せるのですが、
swift
1element.stringValue
で<iframe...>は消えてしまい取り出すことができません。どうすれば<ifram ...>をString型で取り出すことができるでしょうか? elementの型がONOXMLElementなのもネックです。
よろしくお願いします。
swift
1import UIKit 2import Ono 3 4class HTMLParser: NSObject { 5 var elements = [Element]() 6 7 func HTMLDocumentWithString(htmlText:String) -> [Element] { 8 do { 9 let document = try ONOXMLDocument.htmlDocument(with: htmlText, encoding: String.Encoding.utf8.rawValue, error: nil) 10 // htmlの子要素を参照 11 for bodyElement in document.rootElement.children { 12 let bodyElement = bodyElement 13 // bodyの子要素を参照 14 for element in bodyElement.children { 15 if let element = element as? ONOXMLElement { 16 print(element) 17 // 許可しているタグのみパースする 18 if let tag = PermitTag(rawValue: element.tag) { 19 parseElement(element: element, tag: tag) 20 } 21 } 22 } 23 } 24 } catch { 25 print("error when parser html") 26 } 27 return elements 28 } 29 30 private func parseElement(element: ONOXMLElement, tag: PermitTag) { 31 switch tag { 32 case .p: 33 elements.append(Element(tag: tag, value: (element.stringValue?.trimmingCharacters(in: NSCharacterSet.whitespacesAndNewlines))!)) 34 case .h2: 35 elements.append(Element(tag: tag, value: (element.stringValue?.trimmingCharacters(in: NSCharacterSet.whitespacesAndNewlines))!)) 36 default: 37 break 38 } 39 } 40}
あなたの回答
tips
プレビュー