怎么连接MYSQL数据库生成XML文档
createxml.php文档:
<?
$conn =mysql_connect('localhost', 'root', '12345678') or die('Could not connect: ' . mysql_error());
mysql_select_db('school', $conn);
$str = "SELECT Sno,Sname,Ssex,Birthday,Class FROM student";
$result = mysql_query($str) or die("Invalid query: " . mysql_error());
if($result)
{
$xmlDoc = new DOMDocument();
if(!file_exists("student.xml")){
$xmlstr = "<?xml version='1.0' encoding='utf-8' ?><STUDENT></STUDENT>";
$xmlDoc->loadXML($xmlstr);
$xmlDoc->save("student.xml");
}else {
unlink("student.xml");
$xmlDoc->load("student.xml");}
$Root = $xmlDoc->documentElement;
mysql_query("set names gb2312");
$result=mysql_query("SELECT Sno,Sname,Ssex,Birthday,Class FROM student");
while ($arr = mysql_fetch_array($result)){
$node1 = $xmlDoc->createElement("NO");
$text1 = $xmlDoc->createTextNode(iconv("GB2312","UTF-8",$arr["Sno"]));
$node1->appendChild($text1);
$node2 = $xmlDoc->createElement("NAME");
$text2 = $xmlDoc->createTextNode(iconv("GB2312","UTF-8",$arr["Sname"]));
$node2->appendChild($text2);
$node3 = $xmlDoc->createElement("SEX");
$text3 = $xmlDoc->createTextNode(iconv("GB2312","UTF-8",$arr["Ssex"]));
$node3->appendChild($text3);
$node4 = $xmlDoc->createElement("BIRTHDAY");
$text4 = $xmlDoc->createTextNode(iconv("GB2312","UTF-8",$arr["Birthday"]));
$node4->appendChild($text4);
$node5= $xmlDoc->createElement("CLASS");
$text5= $xmlDoc->createTextNode(iconv("GB2312","UTF-8",$arr["Class"]));
$node5->appendChild($text5);
$Root->appendChild($node1);
$Root->appendChild($node2);
$Root->appendChild($node3);
$Root->appendChild($node4);
$Root->appendChild($node5);
$xmlDoc->save("student.xml");
}
echo "student数据表生成student.xml文件成功!";
}
mysql_close($conn);
?>
生成的student.xml内容是:
<?xml version="1.0" encoding="utf-8"?>
<STUDENT>
<NO>103</NO>
<NAME>李勇</NAME>
<SEX>1</SEX>
<BIRTHDAY>1982-03-04</BIRTHDAY>
<CLASS>95031</CLASS>
<NO>105</NO>
<NAME>刘晨</NAME>
<SEX>0</SEX>
<BIRTHDAY>1983-05-08</BIRTHDAY>
<CLASS>95031</CLASS>
</STUDENT>
想请问一下怎么改createxml.php使生成的student.xml的内容如下:
<?xml version="1.0" encoding="utf-8"?>
<STUDENT>
<PERSON>
<NO>103</NO>
<NAME>李勇</NAME>
<SEX>男</SEX>
<BIRTHDAY>1982-03-04</BIRTHDAY>
<CLASS>95031</CLASS>
</PERSON>
<PERSON>
<NO>105</NO>
<NAME>刘晨</NAME>
<SEX>女</SEX>
<BIRTHDAY>1983-05-08</BIRTHDAY>
<CLASS>95031</CLASS>
</PERSON>
</STUDENT>
谢谢!!!
------解决方案--------------------
这样应该可以了~
<?php$conn =mysql_connect('localhost', 'root', '12345678') or die('Could not connect: ' . mysql_error()); mysql_select_db('test', $conn);$str = "SELECT Sno,Sname,Ssex,Birthday,Class FROM student"; $result = mysql_query($str) or die("Invalid query: " . mysql_error()); if($result) { $xmlDoc = new DOMDocument(); if(!file_exists("student.xml")){ $xmlstr = "<?xml version='1.0' encoding='utf-8' ?><STUDENT></STUDENT>"; $xmlDoc->loadXML($xmlstr); $xmlDoc->save("student.xml"); }else {unlink("student.xml");$xmlDoc->load("student.xml");} $Root = $xmlDoc->documentElement; mysql_query("set names gb2312");$result=mysql_query("SELECT Sno,Sname,Ssex,Birthday,Class FROM student");while ($arr = mysql_fetch_array($result)){ $node = $xmlDoc->createElement("PERSON");$node1 = $xmlDoc->createElement("NO"); $text1 = $xmlDoc->createTextNode(iconv("GB2312","UTF-8",$arr["Sno"])); $node1->appendChild($text1); $node2 = $xmlDoc->createElement("NAME"); $text2 = $xmlDoc->createTextNode(iconv("GB2312","UTF-8",$arr["Sname"])); $node2->appendChild($text2); $node3 = $xmlDoc->createElement("SEX"); $text3 = $xmlDoc->createTextNode(iconv("GB2312","UTF-8",$arr["Ssex"])); $node3->appendChild($text3); $node4 = $xmlDoc->createElement("BIRTHDAY"); $text4 = $xmlDoc->createTextNode(iconv("GB2312","UTF-8",$arr["Birthday"])); $node4->appendChild($text4); $node5= $xmlDoc->createElement("CLASS"); $text5= $xmlDoc->createTextNode(iconv("GB2312","UTF-8",$arr["Class"]));$node5->appendChild($text5); $Root->appendChild($node1); $Root->appendChild($node2);$Root->appendChild($node3); $Root->appendChild($node4); $Root->appendChild($node5);$node->appendChild($node1);$node->appendChild($node2);$node->appendChild($node3);$node->appendChild($node4);$node->appendChild($node5);$Root->appendChild($node);$xmlDoc->save("student.xml"); } echo "student数据表生成student.xml文件成功!";} mysql_close($conn); ?>