php html转换xml节点,用php实现动态产生xml文件以及从xml文件中抽取数据转化成html的小程序_php技巧...

这个东东搞了我一天。。。可是到最后发现却无法实现自己想像中的那种效果。。。真是可惜。。。看来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.=”n”;

while($row=mysql_fetch_array($rs)){

for($i=0;$i

$fieldname=mysql_field_name($rs,$i);

$XMLfile.=”” . $row[$i] . “” . $fieldname . “>n”;

}

}

mysql_free_result($rs);

mysql_close($connect_id);

$XMLfile.=”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 “

” . $tag . “”;

}

else{

switch ((XML_get_current_line_number($parser)-2)%6){

case 0:

echo “

下载”;

break;

case 1:

echo “

ID号”;

break;

case 2:

echo “

书名”;

break;

case 3:

echo “

作者”;

break;

case 4:

echo “

出版社”;

break;

case 5:

echo “

出版日期”;

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));

?>

图书信息

$XML_parser->parse($XMLdata);

?>

其实你们应该看得出。。这个例子是个失败的东东。。。因为效果不大。。根本不能得到自己想要的东东。。。唉。。。苦。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值