このオブジェクトを考えると:
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 );
}