人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHP5の質問です。

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を指定しなくてもデータが取得できるのでしょうか?



●質問者: masashi0316
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● oil999
●200ポイント ベストアンサー

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];
?>

masashi0316さんのコメント
確認しました。 オブジェクト構造へのアクセスに理解が足りなかったです。 ありがとうございました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ