首页 > php基础 > 用PHP实现动态产生XML文件以及从XML文件中抽取数据转化成HTML的小程序。。。不用DOM的。。

用PHP实现动态产生XML文件以及从XML文件中抽取数据转化成HTML的小程序。。。不用DOM的。。

这个东东搞了我一天。。。可是到最后发现却无法实现自己想像中的那种效果。。。真是可惜。。。看来 PHP 对XML还需要加强。。。如果哪位对此有研究。欢迎来信探讨。。。 首先建表: CREATE TABLE books ( bookid int(4) NOT NULL auto_increment, bookname va

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

<?php
$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 = "\n";
$xmlfile.= "\n";
while ($row = mysql_fetch_array($rs)) {
    for ($i = 0; $i < $numfields; $i++) {
        $fieldname = mysql_field_name($rs, $i);
        $xmlfile.= "<" . $fieldname . ">" . $row[$i] . "\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的源代码。。。

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

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


永久链接:http://www.phprm.com/base/f5969c762f55716a8ee6bf66e6b66732.html

转载随意!带上文章地址吧。

标签:none

发表留言