- PHP Manual
- 范例
- XML 标签映射例程
XML 标签映射例程
Example #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();// use case-folding so we are sure to find the tag in $map_arrayxml_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("could not open XML input");}while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); }}xml_parser_free($xml_parser);?>