メインコンテンツまでスキップ

要素の値の取得

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

使用するアクション

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

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

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

パラメーター名
XML ドキュメント対象 XML データ(XML ノードオブジェクトである必要があります)
XPath クエリXPath 方式で取得したい値を指定する
次として値を取得する文字列以外を指定した場合、指定のデータ型にコンバートされる
生成された変数取得された値

action

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

XML ノードオブジェクトを作成する際、場合によって文字化けが発生する可能性があります。

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

アクションを実装する

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

今回はサンプルとして、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 を操作して実装

  1. 「アクションの検索」から、「XML 要素の値を取得します」と入力します。

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

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

起こりうる例外

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

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

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

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