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ランキング
-
PHPで配列をPOSTデータで送った...
-
配列を回すとき、最後の要素だ...
-
$_SESSIONに二次元配列を使える...
-
エラーの原因について
-
String だと「 ByRef引数の型が...
-
配列の何番目かを出力したい
-
file_existsでファイル名の部分...
-
チェックボックスが複数選択で...
-
postgresql関数をつかったレコ...
-
配列をループでたくさん宣言し...
-
【Smarty】foreach関数やsectio...
-
foreachのなかで次のキーを参照...
-
ファイルから指定行数分だけ読...
-
PHPにてクラスを配列にすること...
-
CSVデータのn番目だけの値を取...
-
fgetsで取り込んだ文字をexplod...
-
Smartyのテンプレートからjavas...
-
array_combineがうまくいかない...
-
PHPの preg_grep関数(正規表現...
-
C言語 最大値と最小値を求めて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列をループでたくさん宣言し...
-
String だと「 ByRef引数の型が...
-
file_existsでファイル名の部分...
-
foreachのなかで次のキーを参照...
-
$_SESSIONに二次元配列を使える...
-
PHPのカッコ[ ]の使い方について
-
$_SESSIONについて教えて下さい。
-
配列を回すとき、最後の要素だ...
-
ネストが深い時のforeachはどう...
-
配列一致(要素順番は違うが内容...
-
PHPにてクラスを配列にすること...
-
配列の値の更新方法について
-
postgresql関数をつかったレコ...
-
PHPで配列をPOSTデータで送った...
-
PHP 多次元配列変数のデータ受...
-
漢字のソートについて
-
チェックボックスが複数選択で...
-
$_POSTを一括してサニタイズし...
-
smarty 同じ要素内で改行
-
配列のbindValue方法について
おすすめ情報