Power Automate Desktopには、XML 属性と要素を取得、管理する機能があります。その取得事例として、【Power Query】エクセルで複数のXML形式のデータをインポートして整理と同じサンプルファイルで、XMLの値を取得してみました。
使用のツールは「Power Automate Desktop」(version 2.39.306.23341)です。
内容:
事例の前提
XMLファイルのデータサンプルは、前述の以下で利用した、基本3情報ダウンロード|国税庁法人番号公表サイトで公開されているデータです(ダウンロードファイル内にある「05_Web-API機能(Ver.4.0)\03_取得期間指定」)。
手順
全体像
事例で説明するPower Automate Desktopのフローの全体像は次の3ステップです。
- ファイルからXMLを読み取る
- Xpath式を実行します
- XML要素の値を取得
1.ファイルからXMLを読み取る
画面左側のアクションメニューのXMLのグループから、「ファイルからXMLを読み取る」を選択し、XML形式のファイルを指定します。
事例では、前述サンプルにある「diff_20170509_ver4_x4.xml」を指定しています(ページ下部の補足説明で、中略したサンプルを記載しています)。
参考情報:
XML を使用したアクションについての参考情報 - Power Automate | Microsoft Learn
2.Xpath式を実行します
Xpath式を実行する事例のため、要素の値を取得したい場合は、不要のアクションです。「3.XML要素の値を取得」のみ実施します。
アクションから「Xpath式を実行します」を選択し、Xpath クエリ等を設定します。
事例の設定画面は次のとおりです。
解析するXMLドキュメントは、「1.ファイルからXMLを読み取る」で生成された変数を設定しています。
Xpath クエリに一致した最初の値のみ取得する場合は、「最初の値のみ取得します」を有効にします。
なお、このフローを実行すると、生成された変数 XPathResults に次のとおり値が取得されていました。変数に、リストXMLノードが代入されています。
3.XML要素の値を取得
アクションから「XML 要素の値を取得」を選択し、Xpath クエリ等を設定します。
事例の設定画面は次のとおりです。
XMLドキュメント、Xpathクエリを「2.Xpath式を実行します」と同様に設定します。
このフローを実行すると、生成された変数 XmlElementValue に次のとおり該当のテキスト値が取得されていました。
補足説明
Xpath クエリに一致するデータが複数ある場合、「2.Xpath式を実行します」には、「最初の値のみ取得します」という設定がありますが、「3.XML要素の値を取得」にはなく、一致した最初の値を取得するのみです。
今回の事例に使用したXMLファイルの中身(一例)は、次のようなデータです(中略しています)。
<?xml version="1.0" encoding="UTF-8"?>
<corporations>
<lastUpdateDate>2017-05-09</lastUpdateDate>
<count>44</count>
<divideNumber>1</divideNumber>
<divideSize>1</divideSize>
<corporation>
<sequenceNumber>1</sequenceNumber>
<corporateNumber>1020001005004</corporateNumber>
<process>12</process>
<correct>0</correct>
<updateDate>2017-05-09</updateDate>
<changeDate>2017-05-09</changeDate>
<name>株式会社日本語所在地変更</name>
<nameImageId />
<kind>301</kind>
<prefectureName>山梨県</prefectureName>
<cityName>甲府市</cityName>
<streetNumber>丸の内1丁目6-1</streetNumber>
<addressImageId />
<prefectureCode>19</prefectureCode>
<cityCode>201</cityCode>
<postCode>4000031</postCode>
<addressOutside />
<addressOutsideImageId />
<closeDate />
<closeCause />
<successorCorporateNumber />
<changeCause />
<assignmentDate>2015-10-05</assignmentDate>
<latest>1</latest>
<enName />
<enPrefectureName />
<enCityName />
<enAddressOutside />
<furigana />
<hihyoji>0</hihyoji>
</corporation>
<corporation>
<sequenceNumber>2</sequenceNumber>
<corporateNumber>1140001999034</corporateNumber>
(中略)
<enAddressOutside />
<furigana />
<hihyoji>0</hihyoji>
</corporation>
(中略)
<corporation>
<sequenceNumber>44</sequenceNumber>
<corporateNumber>9700150000051</corporateNumber>
(中略)
<enAddressOutside />
<furigana />
<hihyoji>0</hihyoji>
</corporation>
</corporations>
以上、Power Automate Desktopで、XMLの値を取得するサンプル(Xpath式の実行と要素の値取得)でした。