php-从xml文件获取数据

PHP脚本中,如何读取XML文档并将其转换为对象,并访问获取的对象以获取其数据?

<?PHP
$xml ='<?xml version="1.0" encoding="UTF-8" ?>
<data request-id="ID">
<data name="Name1"
    d1="0"
    d2="0231234"
    d3="32584">
    <data name="Name2"
        d4="231234"
        d5="2012-06-06 18:18:10.000607"
        d6="3b048653-aaa9-485b-b0dd-d16e068230e9" />
    </data>
</data>';
$xml = simplexml_load_string($xml); 
//how to get the data d1? or d4? from the obtained object
?> 

解决方法:

尝试使用此功能-

$xml ='<?xml version="1.0" encoding="UTF-8" ?>
<data request-id="ID">
<data name="Name1"
    d1="0"
    d2="0231234"
    d3="32584">
    <data name="Name2"
        d4="231234"
        d5="2012-06-06 18:18:10.000607"
        d6="3b048653-aaa9-485b-b0dd-d16e068230e9" />
    </data>
</data>';
function xmlToArray($input, $callback = null, $recurse = false) {
                    $data = ((!$recurse) && is_string($input))? simplexml_load_string($input, 'SimpleXMLElement', LIBXML_NOCDATA): $input;
                    if ($data instanceof SimpleXMLElement) $data = (array) $data;
                    if (is_array($data)) foreach ($data as &$item) $item = xmlToArray($item, $callback, true);
                    return (!is_array($data) && is_callable($callback))? call_user_func($callback, $data): $data;
            }
$xml = xmlToArray($xml);
echo $xml['data']['@attributes']['d1'];
echo '<br/>';
echo $xml['data']['data']['@attributes']['d4'];

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念