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>的内容)
求大家告诉我一个方案 十分感谢!!!
这是正确的
<?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."条记录导入完成";
?>
`#@__XX` (`prodId` ,`prodContent` ,`prodPrice`,`prodIsptype`,`prodDelaytimes`,`prodProvinceid`,`prodType`这些全部不是单引号
$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插入代码
}