«
PHP将XML映射为HTML的代码实例

时间:2008-5-31    作者:Deri    分类: 分享


   <p>  以下范例将 XML 文档中的标记符直接映射成 HTML 标记符。在“映射数组”中不存在的元素将被忽略。当然,该范例将只对一个特定的 XML 文档有效。</p><code><?php<br />$file = "data.xml";<br />$map_array = array(<br />  "BOLD"  => "B",<br />  "EMPHASIS" => "I",<br />  "LITERAL" => "TT"<br />);<br />function startElement($parser, $name, $attrs) {<br />  global $map_array;<br />  if ($htmltag == $map_array[$name]) {<br />    print "<$htmltag>";<br />  }<br />}<br />function endElement($parser, $name) {<br />  global $map_array;<br />  if ($htmltag == $map_array[$name]) {<br />    print "</$htmltag>";<br />  }<br />}<br />function characterData($parser, $data) {<br />  print $data;<br />}<br />$xml_parser = xml_parser_create();<br />// 使用大小写折叠来保证我们能在元素数组中找到这些元素名称<br />xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true);<br />xml_set_element_handler($xml_parser, "startElement", "endElement");<br />xml_set_character_data_handler($xml_parser, "characterData");<br />if (!($fp = fopen($file, "r"))) {<br />  die("could not open XML input");<br />}<br />while ($data = fread($fp, 4096)) {<br />  if (!xml_parse($xml_parser, $data, feof($fp))) {<br />    die(sprintf("XML error: %s at line %d",<br />          xml_error_string(xml_get_error_code($xml_parser)),<br />          xml_get_current_line_number($xml_parser)));<br />  }<br />}<br />xml_parser_free($xml_parser);<br />?></code></p>