メイン コンテンツをスキップする 補完的コンテンツへスキップ

ストラクチャーエレメントをフラット化

[XPath Name] (XPath名)プロパティを使って、属性値に基づいてストラクチャーのエレメントをフィルタリングします。

このタスクについて

この例では、注文に関する情報が含まれているXMLファイルを使います。各orderエレメントにはstatus属性があります。ステータスがpendingのオーダーだけを処理するようにストラクチャーを設定したいとします。

出力ループにフィルターを設定したマップを作成することもできますが、[XPath Name] (XPath名)プロパティを使ってストラクチャーにフィルターを設定しておけば、このストラクチャーを入力として使う全マップでこのフィルターを自動で適用したい場合に便利です。

次のXMLサンプルを使います:
<orders>
    <order status="pending">
        <orderId>189465984</orderId>
        <customer>
            <lastName>Smith</lastName>
            <firstName>Jane</firstName>
        </customer>
    </order>
    <order status="completed">
        <orderId>189465971</orderId>
        <customer>
            <lastName>Doe</lastName>
            <firstName>John</firstName>
        </customer>
    </order>
    <order status="pending">
        <orderId>189465987</orderId>
        <customer>
            <lastName>Jones</lastName>
            <firstName>Lauren</firstName>
        </customer>
    </order>
</orders>

手順

  1. 提供されたXMLサンプルを基に入力ストラクチャーと出力ストラクチャーを作成します。
    詳細は、サンプルドキュメントからストラクチャーを作成をご覧ください。
    情報メモヒント: ストラクチャーを1つ作成し、それを右クリックして[Duplicate] (複製)をクリックすれば2番目のストラクチャーを作成できます。
  2. 入力ストラクチャーを開き、[Read Only] (読み取り専用)ドロップダウンリストをクリックして[Editable] (編集可能)を選択します。
  3. orderエレメントをクリックし、[XPath Name] (XPath名)プロパティまでスクロールダウンしてorder[@status='pending']と入力します。
    これは、ストラクチャーがstatus="pending"という属性を持つorderエレメントのみを読み取ることを示しています。
  4. 標準マップを作成し、入力ストラクチャーと出力ストラクチャーを追加します。
  5. 入力ordersエレメントを対応する出力エレメントにドラッグ&ドロップし、エレメントをすべてマッピングさせます。
  6. [Test Run] (テスト実行)をクリックして結果を表示させます。

タスクの結果

この例での出力は次のようになります。
<orders>
  <order status="pending">
    <orderId>189465984</orderId>
    <customer>
      <lastName>Smith</lastName>
      <firstName>Jane</firstName>
    </customer>
  </order>
  <order status="pending">
    <orderId>189465987</orderId>
    <customer>
      <lastName>Jones</lastName>
      <firstName>Lauren</firstName>
    </customer>
  </order>
</orders>

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。