2014-09-27 163 views
0

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

[标题] => SimpleXMLElement对象([0] => Klapka120毫米)

你知道,这里可能是什么问题?

的源代码:

这是一个功能的一部分:

$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)); 

非常感谢您的答复

+0

'$数据= array_map( 'strval',$数据);' – hakre 2014-10-11 20:11:20

回答

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 
); 

对于它们中的一些的铸造到整数或浮点数可能感兴趣

+0

它的工作原理。非常感谢你 :) – user1870556 2014-09-27 17:51:20