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回まで
  • 13歳以上
  • 登録:2012/07/30 19:50:17
  • 終了:2012/07/30 20:34:23

ベストアンサー

id:oil999 No.1

oil999回答回数1728ベストアンサー獲得回数3202012/07/30 20:08:41

ポイント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

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません