- PHP Manual
- 例
- XMLタグのマッピングの例
XMLタグのマッピングの例
例1 XMLをHTMLにマップする
この例は、XMLドキュメントのタグを直接HTMLタグにマップします。 "map array" にないエレメントは無視されます。もちろん、この例は、 特定の XML ドキュメント型を有する場合のみ動作します。
<?php$file = "data.xml";$map_array = array( "BOLD" => "B", "EMPHASIS" => "I", "LITERAL" => "TT");function startElement($parser, $name, $attrs) { global $map_array; if (isset($map_array[$name])) { echo "<$map_array[$name]>"; }}function endElement($parser, $name) { global $map_array; if (isset($map_array[$name])) { echo "</$map_array[$name]>"; }}function characterData($parser, $data) { echo $data;}$xml_parser = xml_parser_create();// case-folding を用いることで、$map_array から確実にタグを見つけられるようにしますxml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true);xml_set_element_handler($xml_parser, "startElement", "endElement");xml_set_character_data_handler($xml_parser, "characterData");if (!($fp = fopen($file, "r"))) { die("XML 入力をオープンできませんでした");}while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML エラー: %s が %d 行目で発生しました", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); }}xml_parser_free($xml_parser);?>