这个东东搞了我一天。。。可是到最后发现却无法实现自己想像中的那种效果。。。真是可惜。。。看来php对xml还需要加强。。。如果哪位对此有研究。欢迎来信探讨。。。
首先建表:
create table books (
bookid int(4) not null auto_increment,
bookname varchar(100) not null,
bookauth varchar(50) not null,
bookpublisher varchar(50) not null,
bookpubdate datetime not null,
bookurl varchar(50) not null,
key bookid (bookid),
);
然后。。。这段是从mysql里取数据转化成xml的源代码:
<?
$connect_id=mysql_connect("localhost","root","");
mysql_select_db("bbs",$connect_id);
$query="select * from books order by bookid";
$rs=mysql_query($query,$connect_id);
$numfields=mysql_num_fields($rs);
$xmlfile="<?xml version=\"1.0\" encoding=\"gb2312\"?>\n";
$xmlfile.="<books>\n";
while($row=mysql_fetch_array($rs)){
for($i=0;$i<$numfields;$i++){
$fieldname=mysql_field_name($rs,$i);
$xmlfile.="<" . $fieldname . ">" . $row[$i] . "</" . $fieldname . ">\n";
}
}
mysql_free_result($rs);
mysql_close($connect_id);
$xmlfile.="</books>\n";
$fp=fopen("xmldoc/xmldoc.xml","w");
if(fwrite($fp,$xmlfile)){
echo "写入文件成功!";
}
else{
echo "写入文件失败!";
}
?>
这段是从xml里取数据转化成html的源代码。。。
<?
class xml{
var $parser;
function xml(){
$this->parser = xml_parser_create();
xml_set_object($this->parser,&$this);
xml_set_element_handler($this->parser,"tag_on","tag_off");
xml_set_character_data_handler($this->parser,"cdata");
}
function parse($data){
xml_parse($this->parser,$data);
}
function tag_on($parser,$tag,$attributes){
if(xml_get_current_line_number($parser)==2){
echo "<tr><td colspan=\"2\" align=\"center\">" . $tag . "</td>";
}
else{
switch ((xml_get_current_line_number($parser)-2)%6){
case 0:
echo "<tr><td>下载<td>";
break;
case 1:
echo "<tr><td>id号<td>";
break;
case 2:
echo "<tr><td>书名<td>";
break;
case 3:
echo "<tr><td>作者<td>";
break;
case 4:
echo "<tr><td>出版社<td>";
break;
case 5:
echo "<tr><td>出版日期<td>";
break;
}
}
}
function cdata($parser,$cdata){
echo $cdata;
}
function tag_off($parser,$tag){
echo "\n";
}
}
$xml_parser = new xml();
$xmlfilename="xmldoc/xmldoc.xml";
$fp=fopen($xmlfilename,"r");
$xmldata=fread($fp,filesize($xmlfilename));
?>
<html><head><title>图书信息</title></head>
<body>
<table border="0" cellspacing="1" cellpadding="2" width="80%" bgcolor="#b0d8ff" align="center">
<?
$xml_parser->parse($xmldata);
?>
</table>
其实你们应该看得出。。这个例子是个失败的东东。。。因为效果不大。。根本不能得到自己想要的东东。。。唉。。。苦。。。。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器