给定这个对象:
stdClass Object (
[customerdata] => <TPSession userid="22" CustomerId="123456"LoginId="123456"/><TPSession userid="26" CustomerId="1234567"LoginId="1234567" />
)
如何使用 PHP 将此 XML 数据转换为数组?
给定这个对象:
stdClass Object (
[customerdata] => <TPSession userid="22" CustomerId="123456"LoginId="123456"/><TPSession userid="26" CustomerId="1234567"LoginId="1234567" />
)
如何使用 PHP 将此 XML 数据转换为数组?
只需将其转换为数组:
$arr = (array) $obj;
问题中的 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 );
}
如果我了解您想要将包含在对象元素中的字符串转换为数组,换句话说,将 xml 字符串转换为数组。
这就是你要找的...
http://php.net/manual/en/function.simplexml-load-string.php
按照此页面上的示例进行操作。