我需要使用基于XML的API,我正在处理的事情。我决定因为这个XML需要非常动态,所以更容易在数组中工作并最终转换回XML。我试图在这里使用最高投票解决方案How to convert array to SimpleXML来做这个,当我使用普通数组时,这一切都很好。但是,我使用另一个API来下拉数据,并且该数据是SOAP对象的形式。像这样:
Array
(
[0] => Soap_1_0_Invoice Object
(
[items] => Array
(
[0] => _Soap_1_0_Item Object
(
我已经尝试将其转换为数组,并且我已经在每个点完成了gettype()以确保这是一个数组,事实上它是。然而,它的内容仍然说"对象"当我做print_r。
我正在使用本答案中提供的功能:
function array_to_xml( $data, &$xml_data ) {
foreach( $data as $key => $value ) {
if( is_numeric($key) ){
$key = 'item'.$key; //dealing with <0/>..<n/> issues
}
if( is_array($value) ) {
$subnode = $xml_data->addChild($key);
array_to_xml($value, $subnode);
} else {
$xml_data->addChild("$key",htmlspecialchars("$value"));
}
}
}
当它击中时
$xml_data->addChild("$key",htmlspecialchars("$value"));
我收到一条错误消息,指出此对象无法转换为此行的字符串。是否有可能将其转换为可用的数组,或者我对这里发生的事情有一个基本的误解?