---
schema_version: "1"
id: 4ed980436ce2a67c04dc4c1791dfc7eb5a6610be33338a37bccddf2598906ad4
title: Parse Template (<parse-template/>)
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/anypoint-code-builder/acb-component-parse-template.md
canonical_url: https://docs.mulesoft.com/jp/anypoint-code-builder/acb-component-parse-template
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 7755f1191179ff51863de222535a159f67edf688b5bfe652bd8d6baf98ca1232
description: MuleSoft Documentation Site
latest: true
---
# Parse Template (<parse-template/>)

テンプレートを処理して結果を取得します。

テンプレートには、Mule が評価して結果に置き換える DataWeave 式が埋め込まれたテキストが含まれます。

外部ファイル参照を使用してテンプレートを設定するか、コンポーネント設定にテンプレートを埋め込みます。

## [](#component-xml)コンポーネント XML

このコンポーネントは、次の XML 構造をサポートします。

```xml
<parse-template
  doc:name="Parse template"
  doc:id="fppwuw"
  location="template.html" />
```

Parse Template (​`<parse-template/>`​) 属性は UI および XML で設定できます。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 60%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">属性名</th>
<th class="tableblock halign-left valign-top">属性 XML</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Parse template (解析テンプレート)</strong>​ (デフォルト)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>doc:name</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>キャンバスに表示されるコンポーネントの編集可能な名前。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">なし</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>doc:id</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>コンポーネントの自動生成された識別子。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Content (コンテンツ)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>content</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>テンプレートを表す文字列であり、このテンプレートでは埋め込まれた式が評価され、その結果に置き換えられます。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Location (場所)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>location</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>テンプレートファイルの場所。Mule は、メッセージのプロパティまたは変数から抽出した値をこのファイルに挿入します。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Output encoding (出力エンコード)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>outputEncoding</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>このコンポーネントで出力されるペイロードのエンコード。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Output mime type (出力 MIME タイプ)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>outputMimeType</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>このコンポーネントで出力されるペイロードの MIME タイプ。詳細は、​<a href="https://docs.mulesoft.com/dataweave/latest/dataweave-formats#reader_writer_properties" class="xref page">「リーダーとライターのプロパティの使用」</a>​を参照してください。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">​<strong>パラメーター</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">なし</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>リーダープロパティのキーと値のペアを ​<code>outputMimeType</code>​ 属性の値に追加します。複数のキーと値のペアが許可されます。リーダープロパティは MIME タイプに固有です。例として、​<code>application/json</code>​ の​<a href="https://docs.mulesoft.com/dataweave/latest/dataweave-formats-json#properties" class="xref page">「JSON リーダープロパティ」</a>​を参照してください。他のリーダープロパティを見つけるには、​<a href="https://docs.mulesoft.com/dataweave/latest/dataweave-formats" class="xref page">DataWeave 形式のドキュメント</a>​の「サポートされる形式」に移動し、​<a href="https://docs.mulesoft.com/dataweave/latest/dataweave-formats#reader_writer_properties" class="xref page">「リーダーとライターのプロパティの使用」</a>​を参照してください。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Target Variable (対象変数)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>target</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>メッセージデータを格納する変数の名前。数字、文字、アンダースコアのみを使用できます。たとえば、名前にハイフンは使用できません。
Mule ドキュメントの <a href="https://docs.mulesoft.com/mule-runtime/latest/target-variables" class="xref page">Enrich Data with Target Variables</a>を参照してください。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Target Value (対象値)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>targetValue</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>対象変数に格納するデータの値。このデフォルト値はメッセージペイロード (payload) です。この項目は、変数が受け入れるすべての値を受け入れます。サポートされているデータ型、DataWeave の式、​<code>payload</code>​、​<code>attributes</code>​、​<code>message</code>​ キーワードが該当しますが、​<code>vars</code>​ キーワードは対象外です。
Mule ドキュメントの <a href="https://docs.mulesoft.com/mule-runtime/latest/target-variables" class="xref page">Enrich Data with Target Variables</a>を参照してください。</p>
</div></div></td>
</tr>
</tbody>
</table>

## [](#例)例

この例では、Parse Template を使用してデータを HTML に動的に読み込みます。

### [](#example1)例: データベースクエリの結果の動的処理

この例では、データベースから従業員データを HTML テンプレートに読み込む Mule アプリケーションで Parse Template を使用します。フローは、テンプレートで構築された出力をコール元に返します。

```xml
Unresolved include directive in modules/ROOT/pages/_partials/mule-components/4.4/component-parse-template.adoc - include::mule-runtime::example$parse-template-reference.xml[]
```

#### [](#template)テンプレートコンテンツ

テンプレートでは、名前、部門、役職、開始日、および従業員種別の各値を含む項目を入力ペイロードから選択します。

```html
Unresolved include directive in modules/ROOT/pages/_partials/mule-components/4.4/component-parse-template.adoc - include::mule-runtime::example$responseHtml.template[]
```

#### [](#parse-template-への入力)Parse Template への入力

`http://localhost:8081/getEmployee?id=1234`​ など、従業員の ID を識別するクエリパラメーターを含む URI でフローを開始し、Select 操作で次の入力を Parse Template に返すとします。

```html
{
  "first_name": "Melba",
  "last_name": "Roy Mouton",
  "department": "Computers",
  "job_title": "Assistant Chief of Research Programs",
  "start_date": "01/01/2021",
  "employee_type": "mathematician"
}
```

#### [](#テンプレートの出力)テンプレートの出力

この​[例](#template)​では、テンプレートで構築された出力が返されます。出力は、選択された従業員データを含む HTML です。

```xml
<html>
  <body>
    <table>
      <thead>
        <tr>
          <th>First Name</th>
          <th>Last Name</th>
          <th>Department</th>
          <th>Job Title</th>
          <th>Start Date</th>
          <th>Employee Type</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>"Melba"</td>
          <td>"Roy Mouton"</td>
          <td>"Computers"</td>
          <td>"Assistant Chief of Research Programs"</td>
          <td>"01/01/2021"</td>
          <td>"mathematician"</td>
        </tr>
      </tbody>
    </table>
  </body>
</html>
```

### [](#example2)HTML 行でのデータの動的な生成

この例では、オブジェクトの配列として表される従業員レコードで Parse Template を使用します。

```xml
Unresolved include directive in modules/ROOT/pages/_partials/mule-components/4.4/component-parse-template.adoc - include::mule-runtime::example$parse-template-reference2.xml[]
```

#### [](#template2)テンプレートコンテンツ

次のテンプレートでは、DataWeave スクリプトを使用して入力配列を反復処理し、配列内のオブジェクトごとに HTML 行を作成します。

```html
Unresolved include directive in modules/ROOT/pages/_partials/mule-components/4.4/component-parse-template.adoc - include::mule-runtime::example$responseHtmlMap.template[]
```

#### [](#parse-template-への入力-2)Parse Template への入力

Parse Template コンポーネントは Set Payload から次のペイロードを受け取るとします。

```html
{
	Employee: [

			{
				"first_name" : "Melba",
				"last_name" : "Roy Mouton",
				"department" : "Computers",
				"job_title" : "Assistant Chief of Research Programs",
				"start_date" : "01/01/2021",
				"employee_type" : "mathematician"

			},
			{
				"first_name" : "Annie",
				"last_name" : "Easley",
				"department" : "Software Development",
				"job_title" : "Technical Lead",
				"start_date" : "06/02/2020",
				"employee_type" : "Rocket Scientist"

			}

	]
}
```

#### [](#テンプレートの出力-2)テンプレートの出力

この​[例](#template2)​では、テンプレートで構築された出力が返されます。出力は、動的に作成された行と、配列内のオブジェクトのデータを含む HTML です。

```xml
<html>
  <body>
    <table>
      <thead>
        <tr>
          <th>First Name</th>
          <th>Last Name</th>
          <th>Department</th>
          <th>Job Title</th>
          <th>Start Date</th>
          <th>Employee Type</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td><span>Melba</span></td>
          <td><span>Roy Mouton</span></td>
          <td><span>Computers</span></td>
          <td><span>Assistant Chief of Research Programs</span></td>
          <td><span>01/01/2021</span></td>
          <td><span>mathematician</span></td>
        </tr>
        <tr>
          <td><span>Annie</span></td>
          <td><span>Easley</span></td>
          <td><span>Software Development</span></td>
          <td><span>Technical Lead</span></td>
          <td><span>06/02/2020</span></td>
          <td><span>Rocket Scientist</span></td>
        </tr>
      </tbody>
    </table>
  </body>
</html>
```

## [](#特殊文字)特殊文字

Parse Template は、テンプレート内での式の使用や、これらの式でのリテラルの使用をサポートします。テンプレートは、​`\#[`​ といったシーケンスや引用符など、一部の特殊文字を認識します。これらの文字をエスケープすることで通常の文字として扱うことができます。

- `#[an-expression]`​:
    
    テンプレート内では ​`#[]`​ を使用して式を指定します。たとえば、テンプレートの HTML 要素内で ​`<td>#[upper("mulesoft")]</td>`​ という式を指定すると ​`<td>MULESOFT</td>`​ に解決されます。空白の式 (​`#[]`​) はエラーとなりますが、​`#['']`​ や ​`#[""]`​ などの空白文字列は有効な式です。
- サブ式:
    
    引用符で囲まれたサブ式を解決するには、サブ式を別の ​`#[]`​ で囲みます。たとえば、次のテンプレートスニペットでは、4 つの要素で同じサブ式 (​`upper("world")`​) が引用符の内部または外部に指定されています。最初の 2 つは同じ結果を返します。最後の 2 つは、サブ式が引用符内に指定されていますが、別の ​`#[]`​ で囲まれていないため、​`upper("world")`​ を処理せずにそのまま返します。
    
    Parse Template スニペット:
    
    ```XML
    <td>#['hello #[upper("world")]']</td>
    <td>#['hello ' ++ upper("world")]</td>
    <td>#['hello upper("world")']</td>
    <td>#['hello ++ upper("world")']</td>
    ```
    
    出力される値:
    
    ```XML
    <td>hello WORLD</td>
    <td>hello WORLD</td>
    <td>hello upper("world")</td>
    <td>hello ++ upper("world")</td>
    ```
- エスケープ文字 (​`\`​):
    
    Parse Template は、文字シーケンスの ​`#[`​ で式の開始を示します。この文字シーケンスを式として解釈せずにリテラル文字として扱うには、​`\`​ でエスケープします。たとえば、​`<td>#[</td>`​ は ​`<td>#[</td>`​ を返します。
    
    また、式の文字列に含まれる特殊文字を通常の文字として扱いたい場合があります。式に含まれる文字列内の特殊文字をエスケープするには、特殊文字の前に ​`\`​ を付けます。特殊文字の例としては、​`#[`​ のシーケンス、引用符 (​`'`​ または ​`"`​)、アポストロフィ (​`'`​)、​`$`​ などがあります。​`\#`​ や ​`[`​ は、文字列内でこれらの 2 文字が (​`\#`​ が ​`[`​ の前に来て) 連続していない限り、エスケープする必要はありません。
    
    Parse Template スニペット:
    
    ```XML
    <td>\#[</td>
    <td>#['abcd\#[-1234' ++ now() as String ++ '.log']</td>
    <td>'abc'def'</td>
    <td>#['abc\'def']</td>
    <td>"xyz"xyz"</td>
    <td>#["xyz\"xyz"]</td>
    <td>#["abc\$DEF\#ghi\[JKL]"]</td>
    ```
    
    出力される値:
    
    ```XML
    <td>#[</td>
    <td>abcd#[-12342020-07-06T17:20:10.683-07:00.log</td>
    <td>'abc'def'</td>
    <td>abc'def</td>
    <td>"xyz"xyz"</td>
    <td>xyz"xyz</td>
    <td>abc$DEF#ghi[JKL]</td>
    ```
    
    詳細は、​[「特殊文字のエスケープ」](https://docs.mulesoft.com/jp/dataweave/2.4/dataweave-language-introduction#escape-special-characters)​を参照してください。