simple_xml - 将变量分配给标记 - 仅返回第一个

时间:2012-04-27 03:38:33

标签: php mysql xml simplexml opencart

我正在尝试创建一个XML导入程序,以便将产品从POS系统加载到在线商店。

我想通过从POS系统获取XML导出,处理它并将值直接放入数据库的多个表来实现这一目标。

代码的开头看起来像这样但是我已经遇到了绊脚石。

<?php
    $xml = simplexml_load_file('product.xml');

$ProductName            = $xml->Product->Name;
$ProductDescription     = $xml->Product->Description;
$IsNew = str_replace("false", "0", $xml->Product->IsNew) // Sets False to 0 instead of false

echo $ProductName . "<br />";
echo $ProductDescription . "<br />";
echo $IsNew;
?>

到目前为止,我只是试图从XML标签中获取数据,将它们放入变量中,并回显它们,以便我看到我得到了正确的结果。

这只返回XML文件的第一个产品的细节(超过一千)。我期待它为每个产品获得名称+描述+ IsNew。我假设它需要在while语句中,但我无法弄清楚如何在simple_xml中应用它

XML结构如下所示。

<PRODUCTS>
      <PRODUCT>
              <UPDATETYPE>
              <STYLECODE>
              <NAME>
              <DESCRIPTION>
              ...etc...
              <ITEMS>
                    <ITEM>
                         <CODE>
                         <BARCODE>
                         <SIZE>
                         <PRICE>
                         ...etc...
                    </ITEM>
                    <ITEM>
                    ...etc...
                    </ITEM>
              </ITEMS>
     </PRODUCT>
     <PRODUCT>
     ...etc...
     </PRODUCT>
</PRODUCTS>

1 个答案:

答案 0 :(得分:1)

您需要将Product遍历为数组:

foreach($xml->Product as $_product){
  echo $_product->Name . "<br/>";
  echo $_product->Description . "<br/>";
  echo $_product->IsNew ? "true" : "false";
}