0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Power Automate クラウドフローの「HTMLテーブルの作成」に渡したRSSに含まれるリンクタグ等が機能するようにするには

Last updated at Posted at 2024-09-23

こんな人のための投稿です

Power Automateクラウドフローの「HTMLテーブルの作成」は手軽だけれど、使ってみるとテーブルの中にHTMLのタグがあってもそのまま出てきてしまいます。
image.png
今回のテーマは、こいつの改善です。

RSSはとっても便利

Power Automateのクラウドフローには、「すべてのRSSフィード項目を一覧表示します」というアクションがあります。 RSSフィードのURLを入力するだけで、ニュース記事などを取得することができます。

たとえば、Googleニュースでは以下のように指定することで、特定のキーワードにマッチするニュース記事を取得できます。

https://news.google.com/rss/search?q=乃木坂48&hl=ja&gl=JP&ceid=JP:ja

上の例では「乃木坂48」と書かれている部分を、取得したいニュース記事のキーワードに変えてください。
この結果を「HTMLテーブルの作成」アクションに渡し、さらにその結果を「チャットまたはチャネルでメッセージを投稿する」アクションに渡してやります。 取得される記事が多すぎるとエラーが出ることがあるので、「以降」欄には次のような式をつかって過去24時間内に発行された記事以降のものだけが取得できるように調整しています。

addHours(utcNow(),-24)

image.png

これを実行すると、Teamsには以下のようなテーブルが投稿されます。
image.png

日本語ヘッダーにして項目もスッキリさせるには

列の数が多いことやヘッダーが英語なのを日本語にするには「選択」を挟めばOKです。
image.png
ついでに投稿日時はもともとUTC協定世界時なので、JST日本時間に変換するため以下のような式を使っています。 UTC時間からの変換について、詳しくはこちらのブログを参考にしてください。

ヘッダーが日本語になって、列も必要なものだけに絞ってすっきりしました。
image.png

テーブルの中のHTMLタグを解釈してくれない?

ところで、テーブルのなかで「サマリー」の中身を見ると、せっかくHTMLのaタグをつかって記事へのリンクが設定されているのにタグがそのまま表示されています。これはもったいない。
実行結果から「HTMLテーブルの作成」の出力結果を「未加工出力の表示」で表示させることができます。
image.png

テキストエディタに貼ってみると・・・タグの一部がエンコードされたままになっています。
image.png

こういうのをHTMLの文字実体参照といって、HTMLの意味あるタグでなくて文字として表示するように変換されたもののよう。

これを直接デコードする関数はないようなので、replace関数を使ってタグで使う文字に差し替えてみます。式はこんな感じ。

replace(replace(replace(body('HTML_テーブルの作成'), '&lt;', '<'), '&gt;', '>'), '&amp;', '&')

すると、これが・・・
image.png

こうなりました!
image.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?