<?
$file = "/home/appuser/data/orders.xml";
$hier = array();
function startElement($parser, $name, $attrs){
global $hier;
array_push($hier, $name);
# タグ階層を表示。タグは自動的に大文字に変換されます。
# (例:「DOCUMENT/SECTION/TOPIC/TITLE」)
print join($hier, "/") . "<br>\n";
# 属性は属性名をキー、属性値を値とする配列で渡されます。
if(count($attrs) > 0){
$keys = array_keys($attrs);
while($e = array_shift($keys)){ print "$e = ' $attrs[$e]' "; }
print "<br>\n";
}
}
function endElement($parser, $name){
global $hier;
array_pop($hier);
}
function handleCharData($parser, $data){
if(trim($data) != ""){ print " [$data]<br>\n"; }
}
$parser = xml_parser_create();
xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "handleCharData");
if (!($fp = fopen($file, "r"))) {
die("could not open XML input");
}
while ($data = fread($fp, 4096)) {
if (!xml_parse($parser, $data, feof($fp))) {
die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($parser)),
xml_get_current_line_number($parser)));
}
}
fclose($fp);
xml_parser_free($parser);
# end.
?>
|