![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
XMLデータを取得するプログラムをPHP5で製作しています。
以下、コーディング
-----------------------------------------------------------
$contents = file_get_contents($restURL);
$parser = xml_parser_create('UTF-8');
xml_parse_into_struct($parser,$contents,$values);
xml_parser_free($parser);
-----------------------------------------------------------
file_get_contentsでXMLデータの取得した時点では、例えば
<img><![CDATA[<hogehoge>]]></img>
というふうにCDATAが格納されていることは確認できています。
しかし、xml_parse_into_structで配列構造体にXMLデータを格納すると、
[0] => Array
(
[tag] => IMG
[type] => complete
[level] => 4
[value] =>
)
という感じに、"value"の中の値が空になってしまいます。
xml_parse_into_structで"CDATA"が消えずに配列構造体される方法、
または、xml_parse_into_struct以外で"CDATA"が消えずに配列構造体に
設定される手法はありますでしょうか。
No.1ベストアンサー
- 回答日時:
いや、(XMLの)認識のされかたとしては合ってる筈だよ。
ただ、その文字列を残したいというなら「XMLとしての規則」を守って「エスケープ」するなりしなきゃならないよ
具体的には不等号を実態参照化だね
そうじゃない場合は
2段変換しかないね。
1度テキストとして取り込んでcdataを何かしらに(プログラム上で一定の規則を持つなにかしらの文字列に)置換し、それをxmlとしてパース
取り出したいのはCDATAの中身なので、CDATAを削除し、
マークアップ文字を実態参照化した上でパースすると、
うまく取り出すことができました。
とてもよいヒントをありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- XML XML同じ名前の要素を自動で集約するツール 1 2022/04/11 09:21
- AJAX 自作の地図をグーグルマップのようにしたい 3 2022/11/15 11:53
- WordPress(ワードプレス) ワードプレスにて .xmlファイルの使い方をご存知の方、よろしくお願いいたします。 2 2022/09/30 00:55
- 数学 この数学問題、スマートに解く方法を教えてください。 3 2023/01/26 23:17
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- XML Windowsで見かけるxmlファイルってどういうものですか? 1 2022/06/03 14:57
- アプリ おすすめのパスワード管理アプリを教えてください。(iOSとWindows対応) 4 2023/01/19 02:08
- その他(プログラミング・Web制作) pythonのグローバル変数 2 2022/11/25 18:02
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイルから指定行数分だけ読...
-
String だと「 ByRef引数の型が...
-
PHPにてクラスを配列にすること...
-
PHPのカッコ[ ]の使い方について
-
配列をループでたくさん宣言し...
-
Smartyの自作プラグインで配列...
-
チェックボックスが複数選択で...
-
配列一致(要素順番は違うが内容...
-
ExcelVBAのチェックボックスに...
-
Yahoo API WEB検索の事で!
-
配列をmysqlに保存
-
多次元連想配列のキーを変数で...
-
URLのサブドメインとドメイン部...
-
PHPの preg_grep関数(正規表現...
-
Windowspowershellの変数について
-
foreach($ptr as $valueptr) の...
-
セッション配列の取得の仕方
-
連想配列を array_multisort()...
-
変数の名前をループで
-
CSVデータの一部を変換したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
$_SESSIONに二次元配列を使える...
-
file_existsでファイル名の部分...
-
配列をループでたくさん宣言し...
-
foreachのなかで次のキーを参照...
-
String だと「 ByRef引数の型が...
-
PHPのカッコ[ ]の使い方について
-
配列を回すとき、最後の要素だ...
-
配列一致(要素順番は違うが内容...
-
チェックボックス複数選択 mys...
-
漢字のソートについて
-
postgresql関数をつかったレコ...
-
ネストが深い時のforeachはどう...
-
URLのサブドメインとドメイン部...
-
OCI で、SELECT結果行数を取得...
-
【Smarty】foreach関数やsectio...
-
$_POSTを一括してサニタイズし...
-
phpで、連想配列を普通の配列に...
-
チェックボックスが複数選択で...
-
連想配列のprint_rやvar_dump出...
-
PHP 配列の添字に変数は使えない?
おすすめ情報