这是我的XML对象:http://pastebin.com/0L8vf0ja 这是从:
创建的<?xml version="1.0" encoding="utf-8"?>
<methodResponse><params><param><value><struct><member><name>result</name><value><struct><member><name>application_instance_id</name><value><i4>89</i4></value></member></struct></value></member><member><name>status</name><value><i4>0</i4></value></member></struct></value></param></params></methodResponse>
我知道这个级别:
$ApplicationInstanceID = (int)(string)$data->params->param->value->struct->member->
但是从这里开始,就像你在pastebin中看到的那样,它变成了一个对象数组 - 我不知道如何继续。
请问任何想法?
答案 0 :(得分:2)
$ApplicationInstanceID = (int)(string)$data->params->param->value->struct->member[0]-> // first <member>
$ApplicationInstanceID = (int)(string)$data->params->param->value->struct->member[1]-> // second <member>
答案 1 :(得分:2)
以数组形式访问:
$x = '<root><child><foo>23</foo><foo>34</foo></child></root>';
$xml = new SimpleXMLElement($x);
var_dump($xml->child->foo[0]);
var_dump($xml->child->foo[1]);
但是,如果启用它,xmlrpc_decode
功能可能更容易使用。
var_dump(xmlrpc_decode($yourxml));
array(2) {
["result"]=>
array(1) {
["application_instance_id"]=>
int(89)
}
["status"]=>
int(0)
}
答案 2 :(得分:1)
我有点困惑 - 看起来你已经将XML解析成了一个PHP对象......所以现在只需访问数组的子成员就像数组中的任何元素一样:
$data->params->param->value->struct->member[0]
而且,对于它的属性:
$data->params->param->value->struct->member[0]->name
答案 3 :(得分:0)
您可以尝试使用xpath来获取我认为的节点值,SimpleXml实现它...
http://php.net/manual/en/simplexmlelement.xpath.php