А как же $obj['name']
?
Например, если вы берете эту часть кода:
$str = <<<XML
<root>
<a name="test">
glop
</a>
</root>
XML;
$xml = simplexml_load_string($str);
И эти:
var_dump($xml->a);
Получит вас:
object(SimpleXMLElement)[2]
public '@attributes' =>
array
'name' => string 'test' (length=4)
string '
glop
' (length=18)
И
var_dump($xml->a['name']);
Получит вас:
object(SimpleXMLElement)[4]
string 'test' (length=4)
И приведение к строке:
var_dump((string)$xml->a['name']);
Наконец-то получает то, что вы хотите:
string 'test' (length=4)
т.е. вы просто используете доступ к массиву для получения значений атрибутов.