若 parser 有错则返回 false 值,否则就返回错误代码 (如 XML_ERROR_BINARY_ENTITY_REF .... 等等)。
6. xml_error_string
string xml_error_string(int code);
本函数可取得 XML 在处理时的错误代码。参数 code 为解析错误代码。若无错误返回值为代码的文字描述字符串。
7. xml_get_current_line_number
int xml_get_current_line_number(int parser);
本函数用来取得目前 XML 解析所正在处理的行号。参数 parser 为解析代码。若 parser 有错则返回 false 值,若无错误则返回行号数字。
8. xml_parser_free
boolean xml_parser_free(int parser);
本函数用来释放目前 XML 解析所使用的内存。参数 parser 为解析代码。若没有错误则返回 true 值,否则返回 false 值。
四、案例解析
以下是用PHP5实现读取一个以XML 1.0格式编写的通讯录address.xml,并显示其内容的示例。详解见有关注释。
以下为引用的内容: <?
//
//第一部分:几个PHP Helper函数
//
function read_file($filename)
{
//读取文件
$lines=file($filename);
//变量$contents是存放文件内容的变量
$contents="";
while(list($key,$value)=each($lines))
{
$contents.=$value;
}
return $contents;
}
function start_element($parser, $name, $attrs)
{
//变量$depth存放标记的深度
global $depth;
//变量$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的结束标记时 *
*调用,其作用是改变当前的层次 *
*计数,并在主标记下显示水平线 * |
更多的使用PHP与XML进行网站编程请到论坛查看: http://BBS.TC711.COM
【 双击滚屏 】 【 评论 】 【 收藏 】 【 打印 】 【 关闭 】
来源:
互联网
日期:2009-3-9