要用php 把XML数据导入mysql ,xml里所有的数据导入数据库我在php手册里找了个例子to import xml into mysql$file = "article_2_3032005467.xml";
$feed = array();
$key = "";
$info = "";function startElement($xml_parser, $attrs ) {
global $feed;
}function endElement($xml_parser, $name) {
global $feed, $info;
$key = $name;
$feed[$key] = $info;
$info = ""; }function charData($xml_parser, $data ) {
global $info;
$info .= $data; }$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "charData" );
$fp = fopen($file, "r");
while ($data = fread($fp, 8192))
!xml_parse($xml_parser, $data, feof($fp));
xml_parser_free($xml_parser);$sql= "INSERT INTO `article` ( `";
$j=0;
$i=count($feed);
foreach( $feed as $assoc_index => $value )
{
$j++;
$sql.= strtolower($assoc_index);
if($i>$j) $sql.= "` , `";
if($i<=$j) {$sql.= "` ) VALUES ('";}
}
$h=0;
foreach( $feed as $assoc_index => $value )
{
$h++;
$sql.= utf8_decode(trim(addslashes($value)));
if($i-1>$h) $sql.= "', '";
if($i<=$h) $sql.= "','')";
}
$sql=trim($sql);
echo $sql;
但是输出不正确,而且还只能输出一天记录,怎么可以把所有的数据都输出
$feed = array();
$key = "";
$info = "";function startElement($xml_parser, $attrs ) {
global $feed;
}function endElement($xml_parser, $name) {
global $feed, $info;
$key = $name;
$feed[$key] = $info;
$info = ""; }function charData($xml_parser, $data ) {
global $info;
$info .= $data; }$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "charData" );
$fp = fopen($file, "r");
while ($data = fread($fp, 8192))
!xml_parse($xml_parser, $data, feof($fp));
xml_parser_free($xml_parser);$sql= "INSERT INTO `article` ( `";
$j=0;
$i=count($feed);
foreach( $feed as $assoc_index => $value )
{
$j++;
$sql.= strtolower($assoc_index);
if($i>$j) $sql.= "` , `";
if($i<=$j) {$sql.= "` ) VALUES ('";}
}
$h=0;
foreach( $feed as $assoc_index => $value )
{
$h++;
$sql.= utf8_decode(trim(addslashes($value)));
if($i-1>$h) $sql.= "', '";
if($i<=$h) $sql.= "','')";
}
$sql=trim($sql);
echo $sql;
但是输出不正确,而且还只能输出一天记录,怎么可以把所有的数据都输出
$file = "article_2_3032005467.xml";
$feed = simplexml_load_file($file);
$sql = "INSERT INTO article(";
$keys = "";
$vals = "";
$cnt = count($feed);
foreach($feed as $key => $val)
{
if($i != ($cnt-1))
{
$keys .= $key . ",";
$vals .= $val . ",";
}
else
{
$keys .= $key;
$vals .= $val;
}
}$sql .= $keys .") values(" . $vals .")";