Php simplexml加载xml文件
我要从服务器上的一个xml文件将此代码插入mysql数据库Php simplexml加载xml文件,php,simplexml,sql-insert,Php,Simplexml,Sql Insert,我要从服务器上的一个xml文件将此代码插入mysql数据库 $xml = simplexml_load_file('/var/www/file.xml'); foreach( $xml->product as $value ) foreach( $xml->product->fields as $categories ) { $name = mysql_real_escape_string($value->name);
$xml = simplexml_load_file('/var/www/file.xml');
foreach( $xml->product as $value )
foreach( $xml->product->fields as $categories )
{
$name = mysql_real_escape_string($value->name);
$number = mysql_real_escape_string($value->sku);
$description = mysql_real_escape_string($value->description);
$CategoryPath = mysql_real_escape_string($categories->breadCrumb);
$sql = "
INSERT INTO table SET
name = '$name',
sku = '$number',
description = '$description',
category = '$CategoryPath'
";
$rssql = mysql_query( $sql );
}
这是xml结构
<product>
<name>Ghost Design 2000 Supporto TV LCD rotation</name>
<description>
description text...
</description>
<brand>MELICONI</brand>
<sku>8006023191062</sku>
<fields>
<breadCrumb>
Home|Tecnologia e intrattenimento|Tv, DVD, Home Cinema|Accessori Tv/Video|Supporti video
</breadCrumb>
</fields>
</product>
Ghost Design 2000支持电视LCD旋转
说明文字。。。
梅利科尼
8006023191062
家庭|技术与室内|电视、DVD、家庭影院|辅助电视/视频|支持视频
我在sql表中插入了所有记录,但字段breadCrumb没有正确插入。它总是为所有记录插入相同的面包屑数据。$xml=
$xml = '<?xml version="1.0"?>
<products>
<product>
<name>Ghost Design 2000 Supporto TV LCD rotation</name>
<description>description text...</description>
<brand>MELICONI</brand>
<sku>8006023191062</sku>
<fields>
<breadCrumb>
Home|Tecnologia e intrattenimento|Tv, DVD, Home Cinema|Accessori Tv/Video|Supporti video
</breadCrumb>
</fields>
</product>
<product>
<name>Ghost Design 2000 Supporto TV LCD rotation</name>
<description>
description text...
</description>
<brand>MELICONI</brand>
<sku>8006023191062</sku>
<fields>
<breadCrumb>
second
</breadCrumb>
</fields>
</product>
</products>';
$parsedXml = simplexml_load_string($xml, "SimpleXMLElement", LIBXML_NOCDATA);
foreach($parsedXml->product as $product){
foreach($product->fields as $categories)
echo $categories->breadCrumb.'<br>';
}
Ghost Design 2000支持电视LCD旋转
说明文字。。。
梅利科尼
8006023191062
家庭|技术与室内|电视、DVD、家庭影院|辅助电视/视频|支持视频
Ghost Design 2000支持电视LCD旋转
说明文字。。。
梅利科尼
8006023191062
第二
';
$parsedXml=simplexml\u load\u字符串($xml,“simplexmlement”,LIBXML\u NOCDATA);
foreach($parsedXml->product as$product){
foreach($product->字段作为$categories)
echo$categories->breadCrumb.“
”;
}
那应该对你有帮助
一些额外信息:
在PHP5.5中,不推荐使用函数,请改用
<![CDATA[
比如:
<breadCrumb><![CDATA[]]>
Home|Tecnologia e intrattenimento|Tv, DVD, Home Cinema|Accessori Tv/Video|Supporti video
]]></breadCrumb>
家庭|技术与室内|电视、DVD、家庭影院|辅助电视/视频|支持视频
]]>
另外,请确保使用mysql\u real\u escape\u string将其放入数据库中能否提供更多详细信息?例如,XML文件的一小部分,以便我们可以查看结构、您希望从该XML插入的内容以及实际发生的情况。好的。。我编辑了这篇文章。。谢谢@IMSoP