Power Automate Desktop

Power Automate DesktopのXMLアクションを使ってみた。

Power Automate Desktop(PAD)には豊富なアクションが用意されていますが、個人的に気になっていたアクショングループがあります。
それは下記の「XML」アクションです。

XMLの読み込みから要素や属性の取得・削除、XPathの実行まで、XMLの操作に必要な処理は一通り備わっているようですが、PADでこれらの需要が有るのかどうかが謎だったので、実際に試してみることにしました。

テスト用XML

テストに使用するXMLは下記の通りです。
元はMicrosoft DocsにあるXMLで、一部を加工しています。

<?xml version="1.0" encoding="utf-8"?>
<catalog>
  <book id="bk101">
    <author>テスト太郎</author>
    <title>XML開発入門</title>
    <genre>Computer</genre>
    <price>44.95</price>
    <publish_date>2000-10-01</publish_date>
    <description>XML開発入門書の定番がついに登場!
    この一冊さえあればXMLのすべてが分かります。</description>
  </book>
  <book id="bk102">
    <author>Ralls, Kim</author>
    <title>Midnight Rain</title>
    <genre>Fantasy</genre>
    <price>5.95</price>
    <publish_date>2000-12-16</publish_date>
    <description>A former architect battles corporate zombies, 
    an evil sorceress, and her own childhood to become queen 
    of the world.</description>
  </book>
  <book id="bk103">
    <author>Corets, Eva</author>
    <title>Maeve Ascendant</title>
    <genre>Fantasy</genre>
    <price>5.95</price>
    <publish_date>2000-11-17</publish_date>
    <description>After the collapse of a nanotechnology 
    society in England, the young survivors lay the 
    foundation for a new society.</description>
  </book>
  <book id="bk104">
    <author>Corets, Eva</author>
    <title>Oberon's Legacy</title>
    <genre>Fantasy</genre>
    <price>5.95</price>
    <publish_date>2001-03-10</publish_date>
    <description>In post-apocalypse England, the mysterious 
    agent known only as Oberon helps to create a new life 
    for the inhabitants of London. Sequel to Maeve 
    Ascendant.</description>
  </book>
  <book id="bk105">
    <author>Corets, Eva</author>
    <title>The Sundered Grail</title>
    <genre>Fantasy</genre>
    <price>5.95</price>
    <publish_date>2001-09-10</publish_date>
    <description>The two daughters of Maeve, half-sisters, 
    battle one another for control of England. Sequel to 
    Oberon's Legacy.</description>
  </book>
</catalog>

XMLから任意の要素の値を取得・設定するフロー

フロー全体

1. 変数の設定

テスト用XMLを変数「xml」として設定します。

2. 一時ファイルの取得

変数から読み込んだ値を直接XMLノードとして扱う方法が分からなかったため、XMLを読み込むための一時ファイルを「TempFile」として作成します。

3. テキストをファイルに書き込みます
  • ファイル パス:%TempFile%
  • 書き込むテキスト:%xml%
  • 新しい行を追加する:オン
  • ファイルが存在する場合:既存の内容を上書きする
  • エンコード:UTF-8

4. ファイルから XML を読み取ります

一時ファイルを読み込み、XMLノードとして取得します。

  • ファイル パス:%TempFile%
  • エンコード:UTF-8

5. ファイルの削除

一時ファイルを削除します。

6. XML 要素の値を取得します

XPathで指定した要素の値を取得します。
下記ではid属性の値が「bk101」のbook要素の子要素である「description」要素を指定しています。

  • XML ドキュメント:%XmlDocument%
  • XPath クエリ:/catalog/book[@id="bk101"]/description
  • 次として値を取得する:テキスト値

7. メッセージを表示

ちゃんと要素の値が取得できているかをメッセージボックスで確認します。

8. XML 要素の値を設定します

読み込みが確認できたら、次は値を設定します。

  • XML ドキュメント:%XmlDocument%
  • XPath クエリ:/catalog/book[@id="bk101"]/description
  • XML 要素の値:本気でXML開発を目指す方必読!

9. XML をファイルに書き込みます

最後にXMLファイルとして出力します。

  • ファイル パス:C:\Test\XMLサンプル.xml
  • 書き込む XML:%XmlDocument%
  • エンコード:UTF-8
  • 書式設定 XML:オン
  • レベルごとにインデント:2

出力したXMLファイルを開いたところ、指定した要素の値が無事に変更されていることが確認できました。

上記の通り、XML関連のアクションを使って問題無くXMLの操作ができたわけですが、これをどう有効活用すれば良いのかは悩むところです・・・。

例えばPADのフローとVBAマクロを連携する際、必要なパラメーターをPADからXMLとして書き出し、マクロ側でそれを読み込む、といった活用はできますし、もしくは、操作対象のアプリケーションがXML出力に対応しているのであれば、XMLから必要な値だけを読み込んでExcelファイルに転記する、といった活用方法も考えられます。

何れにしても使う状況は限られてしまいますが、PADにXMLを操作するためのアクションがちゃんと用意されていることだけでも覚えておくと、いつかどこかで役に立つかもしれません。

Power Automate DesktopでPowerPointマクロを実行する方法前のページ

[Google Apps Script]Googleドキュメント文書をPDFに変換してメール送信する次のページ

関連記事

  1. Power Automate Desktop

    「はじめてのPower Automate Desktop」レビュー

    以前書いた記事でも紹介していますが、株式会社ASAHI Account…

  2. Power Automate Desktop

    [Power Automate]クラウドフローとデスクトップフローとのファイル連携について

    前回の記事でクラウドフローとデスクトップフローの連携について紹介しまし…

  3. Power Automate Desktop

    [Power Automate Desktop]Google Driveにファイルをアップロードする…

    前々回の記事でGoogle Drive APIの実行に必要なアクセスト…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

Translate

Chinese (Simplified)Chinese (Traditional)EnglishFrenchGermanJapaneseKoreanRussianSpanish

最近の記事

アーカイブ

PAGE TOP