要用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; 
但是输出不正确,而且还只能输出一天记录,怎么可以把所有的数据都输出

解决方案 »

  1.   

    试一下下面代码:
    $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 .")";
      

  2.   

    你可以先把$feed用print_r打出来看看,它所有的内容均是对象,你可以看看手册看解析过的对象怎么处理,你就查PHP手册中的方法simplexml_load_file