はてなブログAtomPubから取得したデータをAzure Logic Appsで加工して利用する

前回、はてなブログAtomPubから、ブログの下書き情報をAzure Logic Appsで取得しました。

blog.jbs.co.jp

取得したデータはxml形式になっており、またタイトルや本文など様々な情報が含まれていて、このままだと活用が出来ません。

本記事では、取得したxmlのデータを要素ごとに抽出して、ロジックアプリの後のアクションに活用できるようにしていきたいと思います。

前回のおさらいと今回の目的

はてなブログAtomPubから入手したxmlのデータは以下のような形式になっていました。

ここから、titleやauthorなど、個々の要素を抽出するのが目的です。

ロジックアプリへのアクションの追加

JSONの作成

まずは、「作成」アクションとjson式を使って、xml形式のデータを変換してみたいと思います。

はてなブログAtomPubからデータを取得したHTTPのアクションにつなげて、「データ操作」の「作成」を用意します。

入力に以下の式を入れます。

json(body('HTTP'))

一旦ロジックアプリを実行し、結果を確認します。

json全体はこのようになりました。

※ 後の処理で使うので、この結果は控えておきます。

JSONの解析

xmlからjsonに変換したデータを、各要素ごとに利用できるように解析を行います。

「データ操作」の「JSONの解析」アクションを追加します。

コンテンツとして、先ほど「作成」で作った出力を設定します。

「サンプルのペイロードを使用してスキーマを生成する」をクリックし、先ほど控えた出力結果を貼り付けます。

自動でスキーマが作成されたことを確認します。

要素の抽出

実際にデータを抽出してみたいと思います。今回はタイトルを抜き出してみます。

先ほどと同様に「データ操作」の「作成」を用意し、「JSONの解析」から「title」を入力します。

実行し、タイトルを取得できていることを確認します。

おわりに

実は当初、jsonへの変換は行わずそのままxmlで扱おうと考え、xpathで特定の要素を取得することを試みたのですが、以下の理由により断念しました。

  • entry要素でxmlnsが指定されていると、xpathで値を取得しても空白になる*1
  • entry要素でxmlnsの指定を削除すると、xml形で認識させる処理でエラーになる

もしかしたら根本的な解決方法はあったかもしれませんが、今回はjson形式で扱う形で回避しました。

*1:エラーにはならず処理自体は成功します

執筆担当者プロフィール
舟越 匠

舟越 匠(日本ビジネスシステムズ株式会社)

人材開発部に所属。社内向けの技術研修をメインにしつつ、JBS Tech BlogやMS認定資格取得の推進役もやっています。資格としてはAzure Solutions Architect Expertを所持。好きなサービスはPower Automate / Logic Apps。好きなアーティストはZABADAK。

担当記事一覧