前回まででファイルへの入出力ができるようになったので、今回からはパレットのパーサの部?にあるノードを使ってみたいと思います。最初は、htmlノードです。いろいろ出来そうなノードであるのですが、今回はシンプルにタイトルを抽出した文字列の配列を取り出してみたいと思います。
※「ブロックを積みながら」投稿順 index はこちら
今回実験したフロー
今回のフローは以下の「一本道」です。
-
- Injectノード
- file in ノード
- html ノード
- debug ノード
Injectノードは、デフォルトのタイムスタンプ出力ですが、これは次段のfile inノードがファイルを読み出すためのトリガでしかありません。
次段のfile in ノードで読み出したhtmlファイルをその次のhtml ノードで抽出し、最後のdebugノードで抽出結果を出力しようというものです。
file in ノード
file in ノードは、前回使ってみたファイルシステムからファイルを読み出すことが出来るノードです。この部分をネットワークからhtmlファイルをフェッチするように変更すれば面白いとは思うのですが、またそのうち。読み出しているファイルは、本稿作成時点で本サイトのトップにあった以下の記事のhtmlです。
ファイルはフルパスで指定した方が安心なのでそうしています。出力は文字列を指定。バイナリ形式あるいは、1行単位のテキストにすることも可能です。モジコードはデフォルトのまま。
htmlノード
htmlパーサです。msg.payloadに載っているhtmlをパースして要素を抽出した結果をmsg.payloadに載せて送り出します。抽出する要素は今回やっているようにhtmlノードの設定で指定することもできれば、msg.selectプロパティに載っている値で処理させることもできるようです。
今回は、h6タグ(小見出し的なタイトル)を抽出し、該当要素のテキストのみを配列に載せて送り出す設定です。出力形式を選択できるので多段でフィルタかけるような使い方はしやすいんじゃないかと思います。
実行結果
Injectノードからトリガを掛け、デバッグウインドウに出力されたのが以下です。意図通り h6 タグの小見出しの文字列が抽出され arrayに載ってきました。
ネットと組み合わせると、いろいろ出来そうだなと、ついついほくそ笑む?のであります。