XML文件:
<?xml version="1.0" encoding="GB2312"?>
<allproducts version="1.0">
<products>
<product name="prodId" value="x"/>
<product name="prodContent" value="x"/>
<product name="prodPrice" value="x"/>
<product name="prodIsptype" value="xx"/>
<product name="prodDelaytimes" value="x x x"/>
<product name="prodProvinceid" value="x x"/>
<product name="prodType" value="x x x x"/>
</products>
<products>
<product name="prodId" value="x"/>
<product name="prodContent" value="x"/>
<product name="prodPrice" value="x"/>
<product name="prodIsptype" value="xx"/>
<product name="prodDelaytimes" value="x x x"/>
<product name="prodProvinceid" value="x x"/>
<product name="prodType" value="x x x x"/>
</products> </allproducts>获取值并导入数据库的PHP代码
<?php 
require_once(dirname(__FILE__)."/config.php");
$xml_array=simplexml_load_file('note.xml'); //将XML中的数据,读取到数组对象中
$i=0; 
foreach($xml_array as $products)

$i++;
foreach($products as $product)  
{
$a=$product['value'];
$str = $a;
$arr = explode(',',$str  );
echo "prodId =".$arr[0]."<br>";
echo "prodContent =".$arr[1]."<br>";
echo "prodPrice =".$arr[2]."<br>";
echo "prodIsptype =".$arr[3]."<br>";
echo "prodDelaytimes =".$arr[4]."<br>";
echo "prodProvinceid =".$arr[5]."<br>";
echo "prodType =".$arr[6]."<br>";

//导入数据库
$inquery = "INSERT INTO `#@__XX` (`prodId` ,`prodContent` ,`prodPrice`,`prodIsptype`,`prodDelaytimes`,`prodProvinceid`,`prodType`)
VALUES ('$arr[0]','$arr[1]','$arr[2]','$arr[3]','$arr[4]','$arr[5]','$arr[6]'); ";
  $dsql->ExecuteNoneQuery($inquery);
}
} echo $i."条记录导入完成";
?>导入数据库结果:
id=1 prodId=x prodContent= prodContent=........后面的都是空白
id=2 prodId=x prodContent= prodContent=........后面的都是空白
id=3 prodId=x prodContent= prodContent=........后面的都是空白
id=4 prodId=x prodContent= prodContent=........后面的都是空白
id=5 prodId=xx prodContent= prodContent=........后面的都是空白
id=6 prodId=x x x prodContent= prodContent=........后面的都是空白
id=7 prodId=x x x x prodContent= prodContent=........后面的都是空白
是这样它把一个<products>的内容分开导入7个行
我想要的每个<products>的内容导入一行 如下:
id=1 prodId=x prodContent=x prodContent=x prodPrice=x prodIsptype=xx prodDelaytimes=x x x prodProvinceid=x x prodType=x x x x(这里的是第一个<products>的内容)
id=2 prodId=x prodContent=x prodContent=x prodPrice=x prodIsptype=xx prodDelaytimes=x x x prodProvinceid=x x prodType=x x x x(这里的是第二个<products>的内容)
求大家告诉我一个方案 十分感谢!!!

解决方案 »

  1.   

    没有细看语法,但看到sql语句前后的引号是不同的?貌似前面的不是单引号?
      

  2.   

    不好意思 刚才把php源码弄错了
    这是正确的
    <?php 
    require_once(dirname(__FILE__)."/config.php");
    $xml_array=simplexml_load_file('note.xml'); //将XML中的数据,读取到数组对象中
    $i=0; 
    foreach($xml_array as $products)

        $i++;
            foreach($products as $product)     
                {
                $a=$product['value'].",";
                $str = $a;
                $arr = explode(',',$str  );
                echo "prodId =".$arr[0]."<br>";
                echo "prodContent =".$arr[1]."<br>";
                echo "prodPrice =".$arr[2]."<br>";
                echo "prodIsptype =".$arr[3]."<br>";
                echo "prodDelaytimes =".$arr[4]."<br>";
                echo "prodProvinceid =".$arr[5]."<br>";
                echo "prodType =".$arr[6]."<br>";    
                
                //导入数据库
                $inquery = "INSERT INTO `#@__XX` (`prodId` ,`prodContent` ,`prodPrice`,`prodIsptype`,`prodDelaytimes`,`prodProvinceid`,`prodType`)
                VALUES ('$arr[0]','$arr[1]','$arr[2]','$arr[3]','$arr[4]','$arr[5]','$arr[6]'); ";
                 $dsql->ExecuteNoneQuery($inquery);        
                }
    } echo $i."条记录导入完成";
    ?>
      

  3.   

    还是一样啊
    `#@__XX` (`prodId` ,`prodContent` ,`prodPrice`,`prodIsptype`,`prodDelaytimes`,`prodProvinceid`,`prodType`这些全部不是单引号
      

  4.   

    英文是grave accent,中文叫“重音符”?
      

  5.   

    <?php
    $xml_obj = simplexml_load_file('. te.xml');foreach($xml_obj->products as $products_obj) {

    $arr = array();
    foreach($products_obj->product as $product_obj){
    $attrs = $product_obj->attributes();
    $arr[] = (string)$attrs["value"];
    }

    // 在此执行你的sql插入代码
    }