先週土曜日は、Japan Power Platform User Group で開催したもくもく会に参加しました。

このもくもく会とは、どこかの場所に複数人で集まり、各自がそれぞれ作業したり勉強したりするゆる~い雰囲気の勉強会です。もくもく会へ参加するメリットとしては、自宅や職場ではなく場所を変えて集中して勉強できることや、もくもく会へ参加している他の参加者に質問できることなどがあります。

そんなもくもく会で、僕は PowerApps を利用して RSS リーダーアプリを作成していたのですが、文字列の扱いで「HTML タグはどうやって削除するの?」「改行コードはどうやって削除するの?」という 2 つの課題にぶち当たり、他の参加者の力を借りて解決できたので、忘れないようにメモしておきます。

ちなみに、Japan Power Platform User Group に興味のある方は下記の connpass をチェックしてみてください、時々こうしたイベントを開催しています。

Japan Power Platform User Group
https://power-platform.connpass.com/

それでは本題です。

文字列から HTML タグを削除する

PowerApps で文字列に含まれる HTML タグを削除するのはスゴク簡単です。PlainText 関数が用意されていますので、この関数に HTML のタグが含まれている文字列を渡すと HTML タグが削除されます。例えば RawString という文字列変数の HTML タグを削除したい場合は次のように関数を利用します。

PlainText(RawString)

この関数では HTML および XML タグが削除されます。

PowerApps の EncodeUrl および PlainText 関数
https://docs.microsoft.com/ja-jp/powerapps/maker/canvas-apps/functions/function-encode-decode

文字列から改行コードを削除する

改行コードを削除するのも簡単です。改行コードの文字は PowerApps の Char 関数を利用すると、LF が Char(10) で CR が Char(13) と表せるので、これらを文字列置換する Substitute 関数を使って削除します。こちらも、例えば RawString という文字列変数の改行コードを削除したい場合は次のよう関数を利用します。

Substitute(Substitute(RawString, Char(10), ""), Char(13), "")

これで文字列中の LF と CR が空文字に置換され、つまりは、改行コードが削除されます。

PowerApps の Char 関数
https://docs.microsoft.com/ja-jp/powerapps/maker/canvas-apps/functions/function-char
PowerApps の Replace および Substitute 関数
https://docs.microsoft.com/ja-jp/powerapps/maker/canvas-apps/functions/function-replace-substitute

文字列から HTML タグと改行コードを削除する

というわけで最終的にやりたいことは、HTML タグと改行コードの両方を削除することでしたので、結果としては次のように関数を利用します。RawString という文字列変数に HTML タグと改行コードが含まれているとします。

 Substitute(Substitute(PlainText(RawString), Char(10), ""), Char(13), "") 

上の処理を実行した結果のイメージは次の通りです。

さいごに

PowerApps でアプリを作成していると、アプリでの表示に合わせてこうした文字列の加工も必要になってきます。特に利用シーンが多そうな HTML タグのや改行コードの削除の方法は、覚えておくと良さそうです。