Php simplexml加载xml文件

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文件将此代码插入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);
        $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