今日、仕事で問題が発生しました。プロジェクトのデータが小さすぎるため、Web 検索からデータを借用する必要があります。XML インターフェイスしか提供されていません。したがって、xml データを html に変換して全員に提示する必要があります。プロジェクトは PHP に基づいているため、JS を使用して XML を読み取ることを放棄し、PHP を引き続き使用することにしました。しかし、私はこれまでそのような試みをしたことがなかったので、多くのオンライン情報を検索し、PHP の作業マニュアルを参照したところ、PHP4 環境でパーサー関数を使用することがより良い選択であることがわかりました (もちろん DOM を使用することもできます)。ただし、サーバーが再構成され、php5 が DOM をより適切にサポートする必要があります)。
これまでこの種の問題に遭遇したことはありませんでしたが、すぐに解決されました。しかし、解決して探索する過程で、この種の問題に関する情報はたくさんあることがわかりました。インターネット上の情報は不均一な説明が多く、取扱説明書の方が役に立ちます。
さて、本題に入りましょう:
parser は、XML を処理するために PHP に組み込まれたパーサーであり、その動作は開始タグ、データの読み取り、終了タグの 3 つのイベントで構成されます。
つまり、XML を処理するときに、開始タグ、データ、終了タグに遭遇すると、関数は対応するアクションを実行して XML データの変換を完了します。
PHP での XML 読み取り関連関数の紹介:
引用:
----------------------------------------------------- ------------------------
オブジェクト XML 解析関数の説明
要素 xml_set_element_handler() 要素の先頭と末尾
文字データ xml_set_character_data_handler() 文字データの先頭
外部エンティティ xml_set_external_entity_ref_handler()外部エンティティの出現
未解析の外部エンティティ xml_set_unparsed_entity_decl_handler() 未解決の外部エンティティの発生
処理命令の発生 xml_set_processing_instruction_handler() 処理命令の発生
表記法宣言の発生 xml_set_notation_decl_handler() 表記法宣言の発生
デフォルト xml_set_default_handler() その他 なし イベントハンドラを指定
----------------------------------------------------- ------------------------
パーサー関数を使用して XML データを読み取る簡単な例を示します。
$parser = xml_parser_create(); // パーサーエディタを作成します
xml_set_element_handler($parser, " startElement", "endElement");//タグがトリガーされたときに対応する関数を設定します。ここに startElement と endElenment があります
xml_set_character_data_handler($parser, "characterData");//データを読み取るときに対応する関数を設定します
$xml_file="1.xml";// 読み取る xml ファイルを指定します。url を指定できます
$filehandler = fopen($xml_file, "r");// ファイルを開きます
while ($data = fread($filehandler, 4096))
{
xml_parse($parser, $data, feof($filehandler));
} // 毎回の処理のために 4096 バイトを取り出します
fclose($filehandler);
xml_parser_free($parser);// パーサー parser を閉じて解放します
合計2 ページ: 前のページ 1 [2] 次のページ