以下范例將 xml 文檔中的標(biāo)記符直接映射成 html 標(biāo)記符。在“映射數(shù)組”中不存在的元素將被忽略。當(dāng)然,該范例將只對(duì)一個(gè)特定的 xml 文檔有效。
<?php
$file = "data.xml";
$map_array = array(
"bold" => "b",
"emphasis" => "i",
"literal" => "tt"
);
function startelement($parser, $name, $attrs) {
global $map_array;
if ($htmltag == $map_array[$name]) {
print "<$htmltag>";
}
}
function endelement($parser, $name) {
global $map_array;
if ($htmltag == $map_array[$name]) {
print "</$htmltag>";
}
}
function characterdata($parser, $data) {
print $data;
}
$xml_parser = xml_parser_create();
// 使用大小寫(xiě)折疊來(lái)保證我們能在元素?cái)?shù)組中找到這些元素名稱(chēng)
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("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);
?>
新聞熱點(diǎn)
疑難解答