CDATAセクションの利用

要素の中に & や < の特別な文字がたくさん含まれる場合には、 CDATA セクションを利用すると便利です。 CDATA セクションの中に記述された場合は、文字参照か実体参照を使う必要がなくそのまま記述することができます。ここでは CDATA セクションの利用方法について解説します。

(Last modified: )

CDATAセクションの利用

XMLにおける文字参照と実体参照」で説明したように & と < の 2 つの文字については要素の内容の中で使用する場合には文字参照か実体参照を使って記述する必要があります。ただ要素の内容として長文のテキストが記述されている場合など、数多くの & と < の文字が含まれている場合にはすべて変換するのは面倒です。

<?xml version="1.0" encoding="UTF-8" ?>
<foods>
  <food>
    <name>バナナ</name>
    <detail>
    	取り扱っているのは&lt;アメリカ産&gt;&lt;ブラジル産&gt;
    	&lt;メキシコ産&gt;の3つの原産国のものです。
    </detail>
  </food>
</foods>

そこで要素の内容の中に数多くの & と < が含まれる可能性がある場合には CDATA セクションを利用すると便利です。 CDATA セクションの構文は次のとおりです。

<![CDATA[
・・・・
]]>

特別な文字が含まれるテキストなどをそのまま要素の内容に記述するのではなく、 <![CDATA[ で始まり ]]> で終わる間にテキストを記述し、そして CDATA セクションを要素の内容として記述します。 CDATA セクションの中に記述された文字については & や < であってもそのまま記述することができます。

先ほどのサンプルは CDATA セクションを使うと次のように記述することができます。

<?xml version="1.0" encoding="UTF-8" ?>
<foods>
  <food>
    <name>バナナ</name>
    <detail>
    	<![CDATA[
    	取り扱っているのは<アメリカ産><ブラジル産>
    	<メキシコ産>の3つの原産国のものです。
    	]]>
    </detail>
  </food>
</foods>

この XML 文書をブラウザで表示してみると < などの文字であってもエラーとならずにそのまま表示されました。

CDATAセクションの利用(1)

要素の内容として特別な文字が多く含まれる場合には CDATA セクションの利用も検討されてみてください。

-- --

CDATA セクションの利用方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。