实现动态XML

实现动态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="<? 
$xml_parser->parse($xmldata); 
?> 
</table> 

你可能感兴趣的:(xml,mysql,function,query,character,attributes)