Php/docs/example.xml-map-tags

来自菜鸟教程
跳转至:导航、​搜索

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);?>