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のカッコ[ ]の使い方について
-
$_SESSIONに二次元配列を使える...
-
postgresql関数をつかったレコ...
-
foreachのなかで次のキーを参照...
-
ファイルから指定行数分だけ読...
-
PHPで配列をPOSTデータで送った...
-
String だと「 ByRef引数の型が...
-
PHP 配列の添字に変数は使えない?
-
file_existsでファイル名の部分...
-
fgetsで取り込んだ文字をexplod...
-
PHP 多次元配列変数のデータ受...
-
配列を回すとき、最後の要素だ...
-
PHPプログラミング スペースで...
-
phpで、連想配列を普通の配列に...
-
ネストが深い時のforeachはどう...
-
CakePHPのfindの取得件数は?
-
配列のランク付け
-
エラーの原因について
-
PHPでこのコード自体に意味は無...
-
別ファイルの構造体の値を読み...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列をループでたくさん宣言し...
-
file_existsでファイル名の部分...
-
$_SESSIONに二次元配列を使える...
-
foreachのなかで次のキーを参照...
-
String だと「 ByRef引数の型が...
-
配列を回すとき、最後の要素だ...
-
配列一致(要素順番は違うが内容...
-
PHPのカッコ[ ]の使い方について
-
ネストが深い時のforeachはどう...
-
チェックボックス複数選択 mys...
-
PHPで配列をPOSTデータで送った...
-
phpで、連想配列を普通の配列に...
-
PHP 多次元配列変数のデータ受...
-
postgresql関数をつかったレコ...
-
【PHP】配列内のある値以上をカ...
-
SQL文の実行結果を変数で受けて...
-
プルダウンメニューでCSVデータ...
-
Smartyのテンプレートからjavas...
-
PHPにてクラスを配列にすること...
-
CSVデータのn番目だけの値を取...
おすすめ情報