phpでxmlをparseするコードを作成していますが、
動きが良く分からないものがあったので質問です。
以下のような、XMLがあります。
・XML
<a>1<2<a>
これを以下のようなPHPでparseします。
・php
function func_char($parser, $data){
print "char: $data\n";
}
$parser = xml_parser_create();
xml_set_character_data_handler($parser , "func_char");
xml_parse($parser, "<a>1<2<a>");
出力が以下のようになります。
・出力結果
char: 1
char: 2
間に"char: <"が出力されるかと思ったのですが、出力されません。
何か心当たりのある方はいらっしゃいますでしょうか?
実行環境
----------------------
OS:CentOS 5.2
Apache 2.2.9
php 5.2.6
libxml2 2.7.2
----------------------
No.1ベストアンサー
- 回答日時:
以下をそのまま貼り付けて実行してみましたが"char: <"も出力されました。
実際に使われているコードですか?
function func_char($parser, $data){
print "char: $data\n";
}
$parser = xml_parser_create();
xml_set_character_data_handler($parser , "func_char");
xml_parse($parser, "<a>1<2<a>");
この回答への補足
ご回答ありがとうございます。
コードは簡略化したものです。
実際にはXMLが違ったりparserにオプションを指定したりしています。
PHPやlibxml2のバージョンを下げたりしてみましたが、
実行結果は同じでした。
No.2
- 回答日時:
ANo.1です。
つまり実際上手くいっていないものとは別のコードということですね。
では、この(質問に書かれている)コードを実行してみた結果はどうですか?
この回答への補足
返事が遅くなってしまい誠に申し訳ありません。
私がこの質問に書いたコードを実行してみると、
"char: <"は出力されません。
他の実行環境(OSやPHPのバージョンが違います)もあるのですが、
そこで実行すると期待通りに"char: <"が出力されます。
ネット等で散々調べたのですが結局原因は分かりませんでした。
とりあえず、CDATAを使って"<"が消える現象を回避しようかと思っています。
<a><![CDATA[1<2]]><a>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- XML XML同じ名前の要素を自動で集約するツール 1 2022/04/11 09:21
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# C言語について コマンドラインで >変数 12.00 (char型) と、小数点付きの値を共用体に渡 1 2022/04/22 16:56
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# スタックフレームの消滅 6 2023/05/20 12:33
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPでダブルバッファリング(画...
-
phpで数字の値を画像で表示した...
-
phpで別の場所にある画像への相...
-
ヒアドキュメント 前にタブを...
-
画像をDBに保存し、表示させ...
-
CSV出力にHTMLが入ってしまう
-
header('Content-type: ima
-
処理を止める関数
-
PHPで`headers already sent`と...
-
TCPDFについて
-
imgとfile_get_contentsの違い
-
onedrive にexcelファイルをア...
-
VBSの「MsgBox」について
-
こちらはただの直列処理ですか?
-
複数ファイルを連続でダウンロード
-
パースエラーとは?
-
リンク先を隠す方法はないでし...
-
拡張子php画像をjpg画像等に変...
-
図に示す階層構造で,現在のデ...
-
C# Excelファイルへの画像挿入。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSV出力にHTMLが入ってしまう
-
PHPSpreadsheetによる書き出し...
-
PHPにおける時間計算、時間足し...
-
PHPで取得したHTML内のdiv要素...
-
TCPDFについて
-
エクスプローラーでフォルダを...
-
¥マークを出力したいがバック...
-
リダイレクト元のURLの取得方法...
-
ob_end_clean と ob_clean の違...
-
PHPで`headers already sent`と...
-
PerlからPHPへ移行したときの注...
-
PHPでデータベースからデータを...
-
image関数でMS Pゴシックを使い...
-
smarty foreach 半角スペース
-
phpでの画像表示
-
webroot以外の画像の表示
-
phpexcelにてsubmitボタンを押...
-
phpにcssを適応させたい...
-
PHPで動的に生成した画像がキャ...
-
文字列を段落で分ける方法を教...
おすすめ情報