コンテンツにスキップ

要素の値の取得

今回は既存の XML ファイルから、特定の要素の値を取得する方法を解説します。

今回使用するのは、「XML 要素の値を取得します」というアクションです。

「XML 要素の値を取得します」アクションの詳細

Section titled “「XML 要素の値を取得します」アクションの詳細”

アクションは以下のパラメーターを持ちます。

パラメーター名 値
XML ドキュメント 対象 XML データ(XML ノードオブジェクトである必要があります)
XPath クエリ XPath 方式で取得したい値を指定する
次として値を取得する テキスト値・数値・Datetime 値・ブール値から選択。テキスト値以外を指定した場合、指定のデータ型に変換される
生成された変数 取得された値

action

データが文字化けしてしまう場合

Section titled “データが文字化けしてしまう場合”

XML ファイルを読み込んで XML ノードオブジェクトを作成する際、ファイルの文字コードと「エンコード」の設定が合っていないと、文字化けが発生する可能性があります。

文字化けしてしまう場合は、以下のページをご参照ください。

サンプルフローをコピーアンドペーストで追加する

Section titled “サンプルフローをコピーアンドペーストで追加する”

今回はサンプルとして、XML データをファイルに保存した後、その一部の値を別の変数として取得するフローを用意しました。

XML は直接記述し、以下のような構造です。

<sample>
<data>
<content>テストデータです</content>
</data>
</sample>

以下のコードをコピーし、Power Automate Desktop の編集画面に貼り付けることで、対象のアクションが追加されます。

SET FilePath TO $'''C:\\Users\\Public\\Documents\\sample.xml'''
XML.WriteXmlToFile.WriteToFileFormatted File: FilePath Xml: $'''<sample><data><content>テストデータです</content></data></sample>''' Encoding: XML.FileEncoding.UTF8 Indentation: 2
XML.ReadFromFile File: FilePath Encoding: XML.FileEncoding.UTF8 XmlDocument=> XmlDocument
XML.GetXmlElementValue.GetElementValue Document: XmlDocument XPathQuery: $'''/sample/data/content''' TextValue=> XmlElementValue

Power Automate Desktop を操作して実装

Section titled “Power Automate Desktop を操作して実装”
  1. 「アクションの検索」から、「XML 要素の値を取得します」と入力します。

  2. パラメーターを以下のように設定します。

    パラメーター名 値
    XML ドキュメント %XmlDocument%
    XPath クエリ /sample/data/content
    次として値を取得する テキスト値
  3. 実行することで、XML データの一部が変数に格納されます。

XPath の書式に誤りがあったり、無効な XPath を指定した場合にエラーとなります。

「XPath 式は要素を返しません」というエラーは、XPath の書式としては誤りがないものの、指定した XPath が要素を返さない場合(一致する要素がない場合など)に発生します。

また、データ型を指定した場合、そのデータ型に正しく変換できないようなデータが渡された際にもエラーとなります。

ブロック処理を実装しておくことをおすすめします。