快速业务通道

用PHP与XML联手进行网站编程

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-25
pth;
 //变量$spacer存放标记前所有的箭头符号
 $spacer="";
 for ($i=1;$i<$depth[$parser];$i++)
 {
  $spacer.="->";
 }
 //设置标记显示时的颜色
 if($depth[$parser]==0)
 {
  $font_color="red";
 }
 else
  if($depth[$parser]==1)
  {
   $font_color="green";
  }
 else
 {
  $font_color="blue";
 }
 //设置标记显示时的字体
 $font_size=5-$depth[$parser];
 if ($font_size<2)
 {
  $font_size=2;
 }
 //显示标记
 echo "<font size=".$font_size." color=".$font_color.">";
 echo $spacer.$depth[$parser];
 if ($depth[$parser]<>0)
 {
  echo "、";
 }
 echo $name."<BR>";
 echo "</font>";
 $depth[$parser]++;
 //如果是主标记就显示红色的水平线
 if($depth[$parser]==2)
 {
  echo "<hr color=red size=1>";
 }
}

/*********************************
*当PHP遇到一个XML的结束标记时 *
*调用,其作用是改变当前的层次 *
*计数,并在主标记下显示水平线 *
*********************************/

function stop_element($parser,$name)
{
 //变量$depth存放标记的深度
 global $depth;
 $depth[$parser]--;
 //如果是主标记就显示红色的水平线
 if($depth[$parser]==2)
 {
  echo "<hr color=red size=1>";
 }
}

/*********************************
*当PHP遇到一个XML的标记内容时 *
*调用,其作用是按照一定的层次 *
*显示出标记的内容 *
*********************************/

function char_data($parser,$data)
{
 //变量$depth存放标记的深度
 global $depth;
 //显示标记的内容
 $data=trim($data);
 if (strlen($data))
 {
  for ($i=1;$i<$depth[$parser]+6;$i++)
   echo "&nbsp";
   echo "<b>$data</b><br>\n";
 }
}

//
//第二部分:PHP文件开始执行处
//
//要解析的XML文件的名字

$file="address.xml";
//读取文件
$data=read_file($file);

// 产生解析器的实例
$parser = xml_parser_create();
// 设置处理函数
xml_set_element_handler($parser, "start_element", "stop_element");
xml_set_character_data_handler($parser, "char_data");
// 解析文件
if(!xml_parse($parser,$data,1))
{
 //报错
 die(sprintf("XML error: %s at line %d",
 xml_error_string(xml_get_error_code($parser)),
 xml_get_current_line_number($parser)));
}

// 释放解析器
xml_parser_free($parser);
?>

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号