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

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2012/07/30 20:34:23
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:oil999 No.1

回答回数1728ベストアンサー獲得回数320

ポイント200pt

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];
?>
id:masashi0316

確認しました。
オブジェクト構造へのアクセスに理解が足りなかったです。
ありがとうございました。

2012/07/30 21:01:07

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません