这本书真是折磨啊,今天看到了XML解析部分,文章在介绍函数及其参数时很是仔细,但是这本没有把源码最终写清楚,总是少一部分,xml和php对大小写不是很敏感,均能读出来,今天也遇到一个乱码问题,希望这方面的大神看到了帮忙解决下,不胜感激啊!下面贴出书中的代码:
<?php
function start($parser,$element_name,$element_attrs)
{
switch($element_name)
{
case "Book":
echo "<SPAN STYLE='font-size:15PX;color:#00C'>----图书简介----</SPAN><br />"; //本段内容也未显示
break;
case "TITLE":
echo "图书名称:";
break;
case "AUTHOR":
echo "作者:";
break;
case "ISBN":
echo "ISBN:";
break;
case "DATA":
echo "出版日期:";
break;
case "PRICE":
echo "图书价格:";
break;
}
}
function stop($parser,$element_name)
{
echo "<br/>";
}
function char($parser,$data)
{
echo $data;
}
$parser=xml_parser_create();
xml_set_element_handler($parser,"start","stop");
xml_set_character_data_handler($parser,"char");
$fp=fopen("Book.xml","r");
while($data=fread($fp,4096))
{
xml_parse($parser,$data,feof($fp)) or
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);
?>
Book.xml的代码如下:
<?xml version="1.0" encoding="GB2312"?>
<!--下面是XML的元素-->
<Books>
<Book>
<TITLE>JavaScript语言精粹</TITLE>
<AUTHOR>Crockford,D</AUTHOR>
<ISBN>9787121177408</ISBN>
<DATA>2012.9</DATA>
<price>49.00元</price>
</Book>
</Books>