質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

0回答

1170閲覧

Onoを使ってHTMLを解析して動画や画像を表示したい。

退会済みユーザー

退会済みユーザー

総合スコア0

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2018/05/02 08:03

まずこちらの記事を読んで欲しいです!
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}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問