สิ่งนี้ยุ่งกับฉันตลอดทั้งวัน - - แต่สุดท้ายฉันก็พบว่าฉันไม่สามารถบรรลุผลตามที่จินตนาการไว้ได้ - - น่าเสียดายจริงๆ - - ดูเหมือนว่า PHP จะต้องได้รับการเสริมความแข็งแกร่งสำหรับ XML - - หากใครมีงานวิจัยเกี่ยวกับเรื่องนี้ ยินดีต้อนรับสู่การเขียนเพื่อหารือเกี่ยวกับ - -
ขั้นแรกให้สร้างตาราง:
สร้างหนังสือตาราง (
bookid int (4) ไม่เป็นโมฆะ การเพิ่มอัตโนมัติ
ชื่อหนังสือ varchar (100) ไม่เป็นโมฆะ
bookauth varchar (50) ไม่เป็นโมฆะ
ผู้จัดพิมพ์หนังสือ varchar (50) ไม่เป็นโมฆะ
bookpubdate datetime ไม่เป็นโมฆะ
bookurl varchar (50) ไม่เป็นโมฆะ
คีย์บุ๊คดิด (บุ๊คดิด)
);
แล้ว. - - ส่วนนี้เป็นซอร์สโค้ดสำหรับการดึงข้อมูลจาก MYSQL และแปลงเป็น XML:
-
$connect_id=mysql_connect("localhost", "root", "");
mysql_select_db("bbs",$connect_id);
$query="select * จากหนังสือ เรียงลำดับตาม 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)){
สำหรับ($i=0;$i<$numfields;$i ){
$fieldname=mysql_field_name($rs,$i);
$XMLfile.="<" . $fieldname . $row[$i] .
-
-
mysql_free_result($อาร์เอส);
mysql_close($connect_id);
$XMLfile.="</books>n";
$fp=fopen("XMLdoc/XMLdoc.XML","w");
ถ้า(fwrite($fp,$XMLfile)){
echo "เขียนลงไฟล์สำเร็จ!";
-
อื่น{
echo "ไม่สามารถเขียนไฟล์ได้!";
-
?>
ส่วนนี้เป็นซอร์สโค้ดที่ดึงข้อมูลจาก XML และแปลงเป็น HTML - -
-
คลาส XML{
var $parser;
ฟังก์ชัน XML(){
$นี่->ตัวแยกวิเคราะห์ = XML_parser_create();
XML_set_object($this->ตัวแยกวิเคราะห์,&$this);
XML_set_element_handler($this->ตัวแยกวิเคราะห์,"tag_on", "tag_off");
XML_set_Character_data_handler($this->ตัวแยกวิเคราะห์,"cdata");
}
ฟังก์ชันแยกวิเคราะห์($data){
XML_parse($this->ตัวแยกวิเคราะห์,$data);
}
ฟังก์ชั่น tag_on($parser,$tag,$attributes){
ถ้า(XML_get_current_line_number($parser)==2){
echo "<tr><td colspan="2" align="center">" . $tag "</td>";
-
อื่น{
สวิตช์ ((XML_get_current_line_number($parser)-2)%6){
กรณีที่ 0:
echo "<tr><td>ดาวน์โหลด<td>";
หยุดพัก;
กรณีที่ 1:
echo "<tr><td>หมายเลขประจำตัว<td>";
หยุดพัก;
กรณีที่ 2:
echo "<tr><td>ชื่อหนังสือ<td>";
หยุดพัก;
กรณีที่ 3:
echo "<tr><td>ผู้เขียน<td>";
หยุดพัก;
กรณีที่ 4:
echo "<tr><td>สำนักพิมพ์<td>";
หยุดพัก;
กรณีที่ 5:
echo "<tr><td>วันที่เผยแพร่<td>";
หยุดพัก;
-
-
}
ฟังก์ชัน cdata($parser,$cdata){
เสียงสะท้อน $cdata;
}
ฟังก์ชั่น tag_off($parser,$tag){
เสียงสะท้อน "น";
-
}
$XML_parser = XML ใหม่();
$XMLfilename="XMLdoc/XMLdoc.XML";
$fp=fopen($XMLfilename,"r");
$XMLdata=fread($fp,ขนาดไฟล์($XMLfilename));
-
<HTML><head><title>ข้อมูลหนังสือ</title></head>
<ร่างกาย>
<table border="0" cellspacing="1" cellpadding="2" width="80%" bgcolor="#b0d8fF" align="center">
-
$XML_parser->แยกวิเคราะห์($XMLdata);
-
</table>
ที่จริงแล้ว คุณควรจะมองเห็นมันได้ - ตัวอย่างนี้เป็นความล้มเหลว - - เพราะผลที่ได้ไม่ใหญ่นัก - คุณไม่สามารถได้รับสิ่งที่คุณต้องการ - - ดี. - - ขม. - - -