2012-04-25 32 views
0

我对得到一个XML和形成阵列,所以我可以通过API更新下面的代码:使用数组内的SimpleXML对象

$data1 = file_get_contents('neworderexample.xml'); 
$xml = new SimpleXMLElement($data1,LIBXML_NOCDATA); 

foreach($xml -> Product as $ord){ 
$sku = $ord -> StockNumber; 
$title = $ord -> Title; 
$retail_price = $ord -> RRP; 
$price = $ord -> SellPrice; 
$description = $ord -> Description; 
$inventory_level = $ord -> StockLevel; 
$weight = $ord -> Weight; 
$width = $ord -> Width; 
$prodheight = $ord -> Height; 
$depth = $ord -> Depth; 

$fields = array(
"sku" => $sku, 
"name" => $title, 
"retail_price" => $retail_price, 
"price" => $price, 
"description " => $description, 
"inventory_level " => $inventory_level, 
"type" => "physical", 
"availability" => "available", 
"weight" => $weight, 
"width" => $width, 
"prodheight" => $prodheight, 
"depth" => $depth, 
"categories" => "1" 
); 

print_r ($fields); 

当我附和任何变量我得到公正的价值,但是当我打印阵列我得到以下内容:

[inventory_level ] => SimpleXMLElement Object ([0] => 9) 
[type] => physical 
[availability] => available 
[weight] => SimpleXMLElement Object ([@attributes] => Array ([unit] => g) [0] => 0.0) 
[width] => SimpleXMLElement Object ([@attributes] => Array ([unit] => (mm)) [0] => 0) 
[prodheight] => SimpleXMLElement Object ([@attributes] => Array ([unit] => (mm)) [0] => 0) 
[depth] => SimpleXMLElement Object ([@attributes] => Array ([unit] => (mm)) [0] => 0) 
[categories] => 1) 

我怎样才能得到数组中的值?

回答

1

转换为字符串,例如使用方法:

"sku" => (string) $sku, 
     ^^^^ 

(这是一个多回答一个评论,它会与问题是重复删除)

0

产生的问题是在为SimpleXMLElement创建对象的事实。尝试将这些特定元素转换为整数/浮点数/字符串。

ex。

$fields = array(
"sku" => intval($sku), 
"name" => $title, 
"retail_price" => $retail_price, 
"price" => $price, 
"description " => $description, 
"inventory_level " => $inventory_level, 
"type" => "physical", 
"availability" => "available", 
"weight" => floatval($weight[0]).$weight['unit'], 
"width" => intval($width[0]).$width['unit'], 
"prodheight" => intval($prodheight[0]).$prodheight['unit'], 
"depth" => intval($depth[0]).$depth['unit'], 
"categories" => "1" 
); 

尝试它可能工作。我不太确定自己没有进行任何测试。

相关问题