SimpleXML将数据存储到数组中

时间:2014-09-27 16:48:16

标签: php arrays simplexml

我正在努力将xml feed的结果存储到数据库中......我能够加载文件...但是当我想将数据存储到数组中时,它会存储而不是值([title] = 'Klapka 120mm';)这个:

  

[title] => SimpleXMLElement对象([0] => Klapka 120mm)

你知道吗,哪里可能有问题?

源代码:

以下是一个功能的一部分:

$import_file = simplexml_load_file($this->input->post('import_url')); // load file from url
$affected_products = 0;
     foreach($import_file->SHOPITEM as $product) {
                    $affected_products += $this->import_product($product);
    }   

这是函数import_product的第一部分:

public function import_product($product) 
{   
    /* save product data into array */
   $data = array(
            'title' => $product->PRODUCT,
            'content' => $product->DESCRIPTION,
            'price' => $product->PRICE,
            'price_vat' => $product->PRICE_VAT,
            'ean' => $product->EAN,
            'count' => $product->AVAILABILITY
        );
   die(print_r($data));

非常感谢您的回复

1 个答案:

答案 0 :(得分:0)

您必须将元素转换为字符串,因为所有这些元素都是SimpleXMLElement的实例。

$data = array(
  'title'     => (string)$product->PRODUCT,
  'content'   => (string)$product->DESCRIPTION,
  'price'     => (string)$product->PRICE,
  'price_vat' => (string)$product->PRICE_VAT,
  'ean'       => (string)$product->EAN,
  'count'     => (string)$product->AVAILABILITY
);

对于其中一些人,可能会对整数或浮点数进行转换