要素の値の取得
今回は 既存の XML ファイルから、特定の要素の値を方法を解説します。
使用するアクション
今回使用するのは、「XML 要素の値を取得します」というアクションです。
「XML 要素の値を取得します」アクションの詳細
アクションは以下のパラメーターを持ちます。
パラメーター名 | 値 |
---|---|
XML ドキュメント | 対象 XML データ(XML ノードオブジェクトである必要があります) |
XPath クエリ | XPath 方式で取得したい値を指定する |
次として値を取得する | 文字列以外を指定した場合、指定のデータ型にコンバートされる |
生成された変数 | 取得された値 |
データが文字化けしてしまう場合
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 を操作して実装
「アクションの検索」から、「XML 要素の値を取得します」と入力します。
パラメーターを以下のように設定します
パラメーター名 値 XML ドキュメント %XmlDocument% XPath クエリ /sample/data/content 次として値を取得する テキスト値 実行することで、XML データの一部が変数に格納されます。
起こりうる例外
XPath の書式に誤りがあったり、無効な XPath を指定した場合にエラーとなります。
「XPath 式は要素を返しません」というエラーが発生した場合は、書式としては誤りはありませんが、指定先が値を返さない(子要素のみなど)場合、エラーとなります。
また、データ型を指定した場合、そのデータ型に正しく変換できないようなデータが渡された際にもエラーとなります。
ブロック処理を実装しておくことをおすすめします。