実際の違いはないと思います。私はエスケープする文字を気にする必要がないので、私はすべてのCDATAを使用することを好むと私は世話をする必要があります ""]> "は、タグを複数のフラグメントに閉じます。
例(PHPで)
<?php
function getXMLContent($content)
{
if
(
(strpos($content, '<') !== false) ||
(strpos($content, '>') !== false) ||
(strpos($content, '&') !== false) ||
(strpos($content, '"') !== false) ||
(strpos($content, '\'') !== false)
)
{
// If value contains ']]>', we need to break it into multiple CDATA tags
return "<![CDATA[". str_replace(']]>', ']]]]><![CDATA[>', $content) ."]]>";
}
else
{
// Value does not contain any special characters which needs to be wrapped/encoded/escaped
return $content;
}
}
echo getXMLContent("Hello little world!");
echo PHP_EOL . PHP_EOL;
echo getXMLContent("This <is> a & hard \" test ' for ]]> XML!");
?>
戻り
Hello little world!
<![CDATA[This <is> a & hard " test ' for ]]]]><![CDATA[> XML!]]>
次のようなXML構造にあることを置く場合:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<test>
<![CDATA[This <is> a & hard " test ' for ]]]]><![CDATA[> XML!]]>
</test>
...保存それをファイル(test.xmlなど)とope nはそのブラウザでは、ブラウザ(または他のXMLアプリケーション/パーサは)あなたに正しい出力に含まの文字列が表示されますことを、わかります
This <is> a & hard " test ' for ]]> XML!
CDATAは、エスケープする必要のある大きな文字列の方がネットワークに優しいため、IMOは、XMLファイルがネットワーク経由で送信されるほとんどの場合に使用する必要があります。 –