複数のHTML要素をひとまとめにして、文字列として出力する方法を説明します。
tagList関数を使うと、複数のHTML要素をひとまとめにできます。
あとは、as.characterで文字列にし、出力すれば完了です。
tagList(h2("リンク一覧"), p("こちらがリンク一覧です。"), ulElm) %>% as.character %>% cat(file = "output.txt")
この記事で使用したRとパッケージのバージョンを記載しておきます。
バージョンが異なると、動作や表示も若干異なる場合があるからです。
- R 3.6.1
- htmltools 0.3.6
- purrr 0.3.2
背景
これまでの記事でRのhtmltoolsパッケージを使い、a要素・ul要素・table要素を作成してきました。
元々の目的はウェブページ作成です。
そのため、各要素をテキスト形式で出力、それも、ある程度まとめて出力しようと思います。
出力さえできれば、あとは、出力したテキストをhtmlファイルやブログに貼り付けることで、ウェブページを作成できますよね。
複数のHTML要素をひとまとめにして、文字列として出力する
ひとまとめにするHTML要素は、h2、p、ul要素とします。
h2、p要素は簡単なものを利用するので、あとで作ります。
こちらの記事を参考に、ul要素を作ります。
library(htmltools) library(purrr) df <- data.frame(contents = c("link1", "link2", "link3"), href = c("url1", "url2", "url3"), download = c("filename1", "filename2", "filename3")) aList <- pmap(df, ~tags$a(list(...)$contents, href = list(...)$href, download = list(...)$download)) ulElm <- tags$ul(map(aList, ~tags$li(.x))) ulElm
<ul> <li> <a href="url1" download="filename1">link1</a> </li> <li> <a href="url2" download="filename2">link2</a> </li> <li> <a href="url3" download="filename3">link3</a> </li> </ul>
では、h2, p, ul要素をひとまとめにします。
htmltoolsパッケージのtagList関数を使えば、複数の要素をひとまとめにできます。
tagList(h2("リンク一覧"), p("こちらがリンク一覧です。"), ulElm)
<h2>リンク一覧</h2> <p>こちらがリンク一覧です。</p> <ul> <li> <a href="url1" download="filename1">link1</a> </li> <li> <a href="url2" download="filename2">link2</a> </li> <li> <a href="url3" download="filename3">link3</a> </li> </ul>
tagList関数の引数は、リストでまとめてもOKです。
tagList(list(h2("リンク一覧"), p("こちらがリンク一覧です。"), ulElm))
あとは、文字列にして出力すれば完了です。
tagList(h2("リンク一覧"), p("こちらがリンク一覧です。"), ulElm) %>% as.character %>% cat(file = "output.txt")
%>%演算子については、こちらの記事で解説しています。
ご参考まで。

まとめ
複数のHTML要素をひとまとめにして、文字列として出力する方法を説明しました。
リストが沢山あるウェブページ作成などで、役立ちそうですね。
では。
--
YouTube: ミサキさん
問い合わせ先
Mail: caprico.aries@gmail.com
Twitter: https://twitter.com/caprico_aries(無言フォローもお気軽に)
コメント
[…] […]