# エレメント名とその値のマッピング

XMLエレメント名と値を抽出するマップを作成します。

## このタスクについて

この例では、前に作成したXMLストラクチャーをマッピングし、XMLエレメント名がkeyエレメントに、そのエレメントの値がvalueエレメントにそれぞれ含まれているJSON出力を取得したいとします。

## 手順

1. 次のコンテンツでJSONファイルを作成し、マシンに保存します:
   ```
   {
      "elements":[
         {
            "key":"",
            "value":[
               {
                  "key":"",
                  "value":""
               }
            ]
         }
      ]
   }
   ```
2. で、マップの出力として使うJSONファイルに基づいたストラクチャーを作成します。

   詳細は、[サンプルドキュメントからストラクチャーを作成](https://help.qlik.com/talend/ja-JP/data-mapper-user-guide/8.0/creating-structure-from-sample-document)をご覧ください。
3. 標準マップを作成し、入力としてXMLストラクチャーを、出力としてJSONストラクチャーをそれぞれ追加します。

   詳細は、[標準マップを作成](https://help.qlik.com/talend/ja-JP/data-mapper-user-guide/8.0/creating-standard-map)をご覧ください。 ![標準マップの作成。](https://help.qlik.com/talend/ja-JP/data-mapper-user-guide/Resources/images/map_names_and_values_01_map.png)
4. GetElementPropertyファンクションを出力elements/keyエレメントに配置します。
5. 入力level1エレメントをElement引数に配置します。

   これは、keyエレメントの値がlevel1エレメントの名前でなければならないことを示しています。 ![入力level1エレメントの配置。](https://help.qlik.com/talend/ja-JP/data-mapper-user-guide/Resources/images/map_names_and_values_02_getelementproperty.png)
6. GetElementPropertyファンクションを出力elements/value/keyエレメントに配置します。
7. 入力level2エレメントをElement引数に配置します。
8. 入力level2エレメントを出力elements/key/valueエレメントに配置します。

   マップが設定され、これからテストできます。 ![マップの設定。](https://help.qlik.com/talend/ja-JP/data-mapper-user-guide/Resources/images/map_names_and_values_03_result.png)
9. [Javaサンプルデータオブジェクトを使って作業](https://help.qlik.com/talend/ja-JP/data-mapper-user-guide/8.0/mapping-xml-structure-with-dynamic-elements)で提供されているXMLサンプルを、サンプル入力ドキュメントとしてインポートします。

   詳細は、[サンプルドキュメントをインポート](https://help.qlik.com/talend/ja-JP/data-mapper-user-guide/8.0/importing-sample-document)をご覧ください。
10. [Test Run] (テスト実行)をクリックして結果を表示させます。

## タスクの結果

最初のXMLサンプルが提供されると、JSON出力は次のようになります。

```
{
    "elements": [
        {
            "key": "book",
            "value": [
                {
                    "key": "title",
                    "value": "Pride and Prejudice"
                },
                {
                    "key": "author",
                    "value": "Jane Austen"
                },
                {
                    "key": "isbn",
                    "value": "978-0141439518"
                }
            ]
        },
        {
            "key": "book",
            "value": [
                {
                    "key": "title",
                    "value": "Jane Eyre"
                },
                {
                    "key": "author",
                    "value": "Charlotte Bronte"
                },
                {
                    "key": "isbn",
                    "value": "978-0553211405"
                }
            ]
        }
    ]
}
```

他のサンプルに切り替えて[Test Run] (テスト実行)をもう一度クリックすれば、次の結果が得られます:

```
{
    "elements": [
        {
            "key": "dvd",
            "value": [
                {
                    "key": "title",
                    "value": "Selma"
                },
                {
                    "key": "director",
                    "value": "Ava DuVernay"
                },
                {
                    "key": "released",
                    "value": "2014"
                }
            ]
        },
        {
            "key": "dvd",
            "value": [
                {
                    "key": "title",
                    "value": "The Hurt Locker"
                },
                {
                    "key": "director",
                    "value": "Kathryn Bigelow"
                },
                {
                    "key": "released",
                    "value": "2008"
                }
            ]
        }
    ]
}
```