实现动态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> 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值