xmlを読み込むときsimplexml_load_stringを利用しています。
-----
$text = '<list><contents><number><![CDATA[1]]></number></contents><contents><number><![CDATA[2]]></number></contents></list>';
$xml = simplexml_load_string($text);
-----
とした場合、データは取得できません。
WEB上で調べCDATAが含まれる場合、オプションとしてLIBXML_NOCDATAを指定すると取得できることがわかりました。
しかし、以下の場合、オプションとしてLIBXML_NOCDATAを指定しなくてもデータが取得できます。
-----
$text = '<list><contents><number><![CDATA[1]]></number></contents></list>';
$xml = simplexml_load_string($text);
-----
なぜ、オプションとしてLIBXML_NOCDATAを指定しなくてもデータが取得できるのでしょうか?
PHP 5.4 では以下のスクリプトで問題なく取得できていることが確認できます。
ご確認ください。
<?php $text = '<list><contents><number><![CDATA[1]]></number></contents><contents><number><![CDATA[2]]></number></contents></list>'; $xml = simplexml_load_string($text); echo $xml->contents[0]->number[0]; echo $xml->contents[1]->number[0]; ?>
確認しました。
2012/07/30 21:01:07オブジェクト構造へのアクセスに理解が足りなかったです。
ありがとうございました。