Skip to main content

要素の値の取得

今回は 既存の 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 式は要素を返しません」というエラーが発生した場合は、書式としては誤りはありませんが、指定先が値を返さない(子要素のみなど)場合、エラーとなります。

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

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