鉴于此对象:
stdClass Object (
[customerdata] => <TPSession userid="22" CustomerId="123456"LoginId="123456"/><TPSession userid="26" CustomerId="1234567"LoginId="1234567" />
)
如何使用PHP将此XML数据转换为数组?
答案 0 :(得分:10)
只需将其转换为数组:
$arr = (array) $obj;
答案 1 :(得分:1)
问题中的Xml数据无效。
您需要将其包装到根元素中,解决属性问题,而不是使用简单的xml解析器来生成可以转换为数组的对象。
实施例
$o = new stdClass ();
$o->customerdata = '<TPSession userid="22" CustomerId="123456"LoginId="123456" /><TPSession userid="26" CustomerId="1234567"LoginId="1234567" />';
function wrap($xml) {
return sprintf ( '<x>%s</x>', $xml );
}
function fix($xml) {
return str_ireplace ( '"LoginId', "\" LoginId", $xml );
}
$xml = wrap ( fix ( $o->customerdata ) );
$sx = new SimpleXMLElement ( $xml );
$sx = ( array ) $sx;
$sx = $sx ['TPSession'];
foreach ( $sx as $row ) {
var_dump ( ( array ) $row );
}
答案 2 :(得分:0)
如果我理解你想将包含在object元素中的字符串转换为数组,换句话说,将xml字符串转换为数组。
这就是你要找的......
http://php.net/manual/en/function.simplexml-load-string.php
按照此页面上的示例进行操作。