XPath - Cloud

Talend Cloud API Testerユーザーガイド

Version
Cloud
Language
日本語 (日本)
Product
Talend Cloud
Module
Talend API Tester
Content
ジョブデザインと開発 > Testing APIs
このセクションでは、Talend Cloud API Testerで使用できるXPath式について説明します。

[XPath syntax] (XPath構文)の詳細は、[official W3C specification] (公式W3C仕様)を参照してください。また、オンラインのXPathエバリュエーターをこちらから探すこともできます。XPath式にはディレクトリーパスのような構文があることにご注意ください。

XMLペイロードの操作に役立つヒントをいくつか紹介します:

  • 単一の/は、rootノードから選択します。
  • /listは、XMLドキュメントの最上位で「リストオブジェクト」を識別します。その後、属性とサブ属性に反復できます。言語では、配列がネイティブにサポートされます。
  • スラッシュ記号/は、オブジェクトの属性を取得したり、ツリー内を深く移動したりするために使用します。
  • 角括弧[]では、配列内の特定の項目を位置で選択できます。インデックスは1から始まることにご注意ください。
  • /text()を使用すると、ノードの内部テキストを取得できます。
  • //では、場所に関係なく選択内容にマッチする現在のノードからドキュメントのノードが選択されます。

XPath式のサンプル

  <?xml version="1.0" encoding="UTF-8"?>
<bookstore>
  <book category="cooking">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.00</price>
  </book>

  <book category="children">
    <title lang="en">Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>

  <book category="web">
    <title lang="en">XQuery Kick Start</title>
    <author>James McGovern</author>
    <author>Per Bothner</author>
    <author>Kurt Cagle</author>
    <author>James Linn</author>
    <author>Vaidyanathan Nagarajan</author>
    <year>2003</year>
    <price>49.99</price>
  </book>

  <book category="web">
    <title lang="en">Learning XML</title>
    <author>Erik T. Ray</author>
    <year>2003</year>
    <price>39.95</price>
  </book>
</bookstore>

サンプル式とその結果を以下にいくつか示します。

/ ドキュメントノード全体
/bookstore bookstoreノード
/bookstore/book/title bookstoreエレメントのすべてのブックノードのすべてtitleノードの配列
//title 位置がどこであれ、すべてのtitleノードの配列
//title/@lang titleノードのすべてのlang属性の配列
/bookstore/book/title/text() bookstoreエレメントの下のすべてのbookノードのtitleノードのすべてのテキスト値の配列
/bookstore/book[price>35]/title 価格が35より大きいすべてのbookノードのtitleノード
//book[last()]/title 最後のbookノードのtitleノード
//book[position() < 3] 最初の2つのbookノード
//title[@lang]] 属性langを持つすべてのtitleノードの配列
name(//*[1]) ドキュメントの最初のエレメントの名前(bookstore)
count(//title) すべてのtitleノードの数(4)