[PHP-users 30593] SAXを使ってみたい
朧月
oboro @ deneb.freemail.ne.jp
2006年 10月 25日 (水) 16:36:12 JST
こんにちは、朧月です。
GooglmapのポイントのデータをXMLにまとめておき、そこからSAXを使ってデータ
を取り出そうと色々やってみたのですが、うまくいきません。現在問題の究明の
ためにコードを簡略化して単体で動かしてみたのですが、
@xml_parse($xml_parser,$data) or exit("パース中に問題が発生しました。");
のコードにて、exitの方が出力されてしまいます。ダメだったらDOMを考えてま
すが、読むだけならSAXの方が効率良いらしいので、なるべくSAXを使用したいで
す。PHPのコードは以下の通りです。
<?php
//変数宣言
$current = "";
function startElement($parser,$name,$attrs){
global $current;
$current = $name;
if($name == "title"){
echo "<h3>";
}
}
function endElement($parser,$name){
if($name == "title"){
echo "</h3><br />";
}
}
function content($parser,$data){
//データ抽出
global $current;
if($current == "title"){
echo "hoehoe" . $data;
}
}
//xmlファイル処理(SAX仕様)
//xmlパーサを作成
$xml_parser = xml_parser_create();
//大文字変換を無効にする
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, false);
xml_set_element_handler($xml_parser,"startElement","endElement");
xml_set_character_data_handler($xml_parser,"content");
//$file = "regist.xml";
//$data = @file($file) or exit("XMLを開けません。");
//$data = implode("\n",$data);
//$data = @readfile("regist.xml") or exit("ファイルが見つかりません");
//$data = implode("\n",$data);
//ファイルを普通に開く
$fname = "regist.xml";
$file = @fopen($fname,"r") or exit('ファイルを開けません');
while(feof($file) == FALSE){
$data = fgets($file);
$data = trim($data);
}
fclose($file);
@xml_parse($xml_parser,$data) or exit("パース中に問題が発生しました。");
xml_parser_free($xml_parser);
?>
環境はVineLinux & PHPです。
--
朧月
mailto:oboro @ deneb.freemail.ne.jp
PHP-users メーリングリストの案内