SimpleXML

PHP5でのSimpleXMLとCDATAの処理について、メモ。

PHP5でSimpleXMLを用いるときに、

$result = @simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);

とかくと、CDATAセクションの内容も読み取ることができるみたいです。

このCDATAですが、今まで、

<p>
 <![CDATA[
    hoge1
    hoge2
    hoge3
  ]]>
</p>

が、CDATAの正しい書き方だと思っていました。


でも、今日、SimpleXMLにて、

<p>
  <![CDATA[ hoge1 ]]>
  <![CDATA[ hoge2 ]]>
  <![CDATA[ hoge3 ]]>
</p>

のような書き方でもXMLを読み込めていたので、
いいんだな〜と思いました。


後、なんで、

$result = @simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);

LIBXML_NOCDATAなんでしょうね。