php处理xml中的数据以表格形式显示出来

发布时间:2008年08月14日      浏览次数:725 次
member.xml
<?xml version="1.0" encoding="gb2312"?>
<member>
<person>
<name>小明</name>
<age>22</age>
<high>161</high>
</person>
<person>
<name>小强</name>
<age>22</age>
<high>161</high>
</person>
</member>
member_table.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<?php
/*
此程序是把xml中的数据以表格形式显示出来
*/
$file="member.xml";
function start($parse,$name,$attr){
//根元素,生成表
if ($name==strtoupper("member")) {
echo "<table border=\"1\">";
}
elseif ($name==strtoupper("person")) {
//生成行
echo "<tr>";
}
else echo "<td>";
}
function set_end($parse,$name){
if ($name==strtoupper("member")) {
echo "</table>";
}
elseif ($name==strtoupper("person")) {
echo "</tr>";
}else echo "</td>";
}
function data_handle($parse,$data){
//echo $data;//如果这样就会输出乱码,但浏览器中选择utf后就显示正常
echo iconv("utf-8","gb2312",$data); //转换编码,以便正常显示
}
//创建xml解析器
$parse=xml_parser_create();
//设置xml元素分析处理函数
xml_set_element_handler($parse,"start","set_end");
//设置获取数据函数
xml_set_character_data_handler($parse,"data_handle");
if (!($fp=fopen($file,"r"))) {
echo "文件不存在!";
exit;
}
//逐行读取xml文件进行分析,即对上述定义函数进行调用处理
while ($data=fread($fp,4096)) {
if (!xml_parse($parse,$data,feof($fp))) {
die(sprintf("xml文件错误:%s 在 %d 行",
xml_error_string(xml_get_error_code($parse)),
xml_get_current_line_number($parse)));
}
}
//释放资源
xml_parser_free($parse);
?>
</body>
</html>
免责声明:本站相关技术文章信息部分来自网络,目的主要是传播更多信息,如果您认为本站的某些信息侵犯了您的版权,请与我们联系,我们会即时妥善的处理,谢谢合作!