「XML」アクションを使いこなす

Power Automate Desktop
「XML」アクションを使いこなす

Power Automate DesktopではXMLファイルを操作するためのアクションが用意されています。XMLとはeXtensible Markup Languageの略称で、主にデータをやり取りする際の記述形式として広く使われています。このページではそんなXMLを操作するアクションについての動きをひとつひとつ確認していきましょう。

(なお、2022/8/18執筆時点でのアクション数であり、今後、利用できるオプションが増える可能性があります。)

1. ファイルからXMLを読み取る

ファイルからXMLを読み取る

「ファイルからXMLを読み取る」アクションを利用すると、ファイルからXMLを読み取ることができます。ファイルの拡張子は必ずしも「.xml」である必要はなく、中身がXML形式になっていれば「.txt」などの拡張子でも読み取ることができます。

設定画面では、まず対象ファイルのフルパスを入力して、読み込むファイルを決めます。続いて、エンコードを選択します。こちらはファイルの形式に合わせるようにしてください。

ファイルからXMLを読み取る設定画面

実行すると、ファイルのXMLを読み取ってテキスト値として変数に保存されました。

事例XMLファイル 実行後取得変数

2. XMLをファイルに書き込む

XMLをファイルに書き込む

「XMLをファイルに書き込む」アクションを利用すると、指定したファイルにXMLを書き込むことができます。この時、ファイルの拡張子は「.xml」の必要はありません。設定画面では最初にファイルパスを設定します。パスはフルパスで設定してください。次に書き込むXMLを入力します。下図のように変数を使うこともできます。今回は「ファイルからXMLを読み取る」アクションで読み取ったXMLを書き込みます。エンコードでは書き込む文字コードを設定します。既存のファイルに書き込む際はファイルの形式に合わせてください。「書式設定XML」をONにすると、XMLを整形した上で書き込んでくれます。ONにしたときは追加でインデントの大きさも指定します。

XMLをファイルに書き込む設定画面

実行すると、下図のように「test.xml」にXMLが書き込まれます。

実行結果

3. XPath式を実行する

XPath式を実行する

「XPath式を実行します」は特定のXMLノードを取得したい時に利用します。XPathとはXMLから要素や属性を取得するための構文のことを言います。例えば、下図のようなXMLにおいて、「/foods/meats/meat」とすれば、「<meat num=”1″>beef</meat>」「<meat num=”2″>pork</meat>」「<meat num=”3″>chicken</meat>」の3つのノードを取得できます。また「num=””」の部分を属性と呼び、この属性も併せて指定することができます。その時は「[@属性名=”属性値”]」で指定し、「/foods/meats/meat[@num=”1”]」としたら「<meat num=”1″>beef</meat>」をひとつだけ取得できます。また、「foods/meats」は省略することもでき、「//meat[@num=”1”]」と指定しても同じノードを取得することができます。

事例サンプル画面

設定画面では最初に対象となるXMLドキュメントを選択します。次にXPathを入力します。「*」は「全て」という意味があり、下図の場合は「num」属性が「1」のノードをすべて取得という条件になります。「最初の値のみを取得します」をONにすると、最初に合致した値ひとつだけを取得します。

XPath式を実行する設定画面

上図の設定で実行すると、「num」属性が「1」のノードをすべて取得し、リストに格納されました。

実行後取得変数

4. XML要素の属性を取得

XML要素の属性を取得

「XML要素の属性を取得」では指定した属性を取得することができます。属性とはタグの中に付加される情報のことで、例えば、下図で言うと、「num=””」の部分が属性になります。この時、「num」が属性名、「””」の部分が属性値となります。属性はひとつのタグに複数配置することも可能です。このアクションでは属性は属性でも属性値の方を取得します。

説明用サンプル画面

設定画面では最初に「XMLドキュメント」を取得します。続いてXPathを入力します。下図の例だと、porkというテキストがあるmeatタグを指定しています。続いて、属性名とその属性名に対応する値を何の型で取得するかを指定します。

XML要素の属性を取得設定画面

実行すると、「<meat num=”2″>pork</meat>」にある「num」属性の値「2」を取得することができました。

実行後取得変数

5. XML要素の属性を設定

XML要素の属性を設定

「XML要素の属性を設定」を利用すると、指定したXML要素の属性値を追加・更新することができます。設定画面ではまずXMLドキュメントを選択します。続いてXPathを指定します。下図の場合だとporkというテキストを持つmeatタグを取得します。「属性名」に現時点でない属性名を入力すると新しい属性が追加され、既存の属性名を入力すると続く属性値の入力内容に書き換わります。また指定したXPathに合致するものが複数ある場合は最初に合致したものだけが置き換わります。「属性値」には指定した「属性名」に設定したい値を入力すれば終了です。

「XML要素の属性を設定」設定画面

実行すると、「<meat num=”2″>pork</meats”>」にある「num」属性の値が「2」から「5」へと変わりました。なお、実際に変更を反映させるのには変更後のXMLドキュメントを再度書き込む必要があります。

実行結果

6. XML要素の属性を削除

XML要素の属性を削除

「XML要素の属性を削除」アクションを利用すると、指定したXML要素の属性を削除することができます。設定画面ではまずXMLドキュメントを選択します。続いてXPathを指定します。下図の場合だとporkというテキストを持つmeatタグを取得します。また指定したXPathに合致するものが複数ある場合は最初に合致したものだけが削除されます。合致するものがない場合はエラーを返します。最後に削除したい「属性名」を入力すれば終了です。

XML要素の属性を削除設定画面

実行すると、下図のように条件に合致する属性が削除されました。なお、実際に変更を反映させるのには変更後のXMLドキュメントを再度書き込む必要があります。

実行結果

7. XML要素の値を取得

XML要素の値を取得

「XML要素の値を取得」を利用すると、指定したXML要素タグのテキストを取得できます。設定画面ではまずXMLドキュメントを選択します。続いてXPathを指定します。下図の場合だと「num」属性が「2」の値を持つ要素すべてを取得します。ただし、このアクションではXPathに合致するものが複数あっても最初に合致したものだけを取得します。合致するものがない場合はエラーを返します。最後に要素をどの型で取得するかを選択します。

XML要素の値を取得設定画面

実行すると下図のように検索条件に合致した最初の値を取得することができました。

実行後取得変数

8. XML要素の値を設定

XML要素の値を設定

「XML要素の値を設定」を利用すると、指定したXML要素タグのテキストを書き換えることができます。設定画面ではまずXMLドキュメントを選択します。続いてXPathを指定します。下図の場合だと「num」属性が「2」の値を持つ要素すべてを取得します。ただし、このアクションではXPathに合致するものが複数あっても最初に合致したものだけを更新します。合致するものがない場合はエラーを返します。最後に要素を書き換える値を入力します。

「XML要素の値を設定」設定画面

実行すると下図のように検索条件に合致した最初の値が「豚肉」という値に書き換わりました。なお、実際に変更を反映させるのには変更後のXMLドキュメントを再度書き込む必要があります。

実行結果

9. XML要素を挿入します

XML要素を挿入します

「XML要素を挿入します」を利用すると、指定したXML要素タグの中に更にXML要素を追加することができます。設定画面ではまずXMLドキュメントを選択します。続いてXPathを指定します。下図の場合だと「meats」というタグを持つ要素をすべて取得します。ただし、このアクションではXPathに合致するものが複数あっても最初に合致したものだけを更新します。合致するものがない場合はエラーを返します。最後に追加したい要素をXML形式で記述します。

XML要素を挿入します設定画面

実行すると下図のように検索条件に合致した最初の値に要素が追加されています。既にその要素の中に値がある場合はその後に追加されます。なお、実際に変更を反映させるのには変更後のXMLドキュメントを再度書き込む必要があります。

実行結果

10. XML要素を削除します

XML要素を削除します

「XML要素を削除します」を利用すると、指定したXML要素を削除することができます。設定画面ではまずXMLドキュメントを選択します。続いて削除したいXPathを指定します。下図の場合だと「num」属性が「2」の要素をすべて取得します。このアクションでは合致したすべての要素が削除対象となります。合致するものがない場合は特に何もせず処理を終了します。エラーも返しません。

XML要素を削除します設定画面

実行すると下図のように検索条件に合致したすべての要素が削除されています。なお、実際に変更を反映させるのには変更後のXMLドキュメントを再度書き込む必要があります。

実行結果

以上、「XML」アクションの解説でした。XMLはデータの記述形式として広く普及しています。XMLを絡めることでより業務の自動化できる幅が広がります。しっかり学んで使いこなせるようになっていきましょう。

→「Power Automate Desktop」の他の操作も見る

執筆者プロフィール

プロフィール画像

伊藤 丈裕

(株)サムテックのシステムエンジニア。応用情報技術者資格保有。
27歳の時、営業から完全未経験で転職。開発とWebマーケティングを担当。得意言語はJavaとJavaScript。

タイトルとURLをコピーしました