我想解析用php解析一串xml数据流,不是js
$xmlStr = "
<eweb>
<bank>
<response>
<result>
<command-type>GET_SEED</command-type>
<code>10000</code>
<message>Command Successful!</message>
<time>2010-01-01 18:00:01</time>
</result>
<data>
<seed>49831498</seed>
</data>
</response>
</bank>
</eweb>";我怎么样才能遍历所有节点啊,然后取到最后一层的节点名字和节点值,即实现如下
$parserArr = array();
$parserArr['command_type'] = GET_SEED;
$parserArr['code'] = 10000;
$parserArr['message'] = Command Successful!</;
$parserArr['time'] = 2010-01-01 18:00:01;
$parserArr['seed] = 49831498;我是菜鸟,请各位大虾帮忙。
$xmlStr = "
<eweb>
<bank>
<response>
<result>
<command-type>GET_SEED</command-type>
<code>10000</code>
<message>Command Successful!</message>
<time>2010-01-01 18:00:01</time>
</result>
<data>
<seed>49831498</seed>
</data>
</response>
</bank>
</eweb>";我怎么样才能遍历所有节点啊,然后取到最后一层的节点名字和节点值,即实现如下
$parserArr = array();
$parserArr['command_type'] = GET_SEED;
$parserArr['code'] = 10000;
$parserArr['message'] = Command Successful!</;
$parserArr['time'] = 2010-01-01 18:00:01;
$parserArr['seed] = 49831498;我是菜鸟,请各位大虾帮忙。
我在弱弱的问个问题啊,
SimpleXMLElement Object
(
[bank] => SimpleXMLElement Object
(
[response] => SimpleXMLElement Object
(
[result] => SimpleXMLElement Object
(
[command-type] => GET_SEED
[code] => 10000
[message] => Command Successful!
[time] => 2010-01-01 18:00:01
) [data] => SimpleXMLElement Object
(
[seed] => 49831498
) ) ))这玩意怎么用啊?我怎么取某个节点的值?谢谢
......
}
$xml = simplexml_load_string($string);
echo $xml->bank->response->result->code[0];
如果只想直接要某个值的话,你可以这样
$tmp =array();
foreach ($xmlobj->children() as $key => $children) {
$tmp[$key] = !is_object ? $children : simplexmlToarray($children);
}
return $tmp;
}
$xml = simplexml_load_string($string);
$xml = simplexmlToarray($xml);写个函数应该是你想要的了
$xmlStr = <<<STR
<eweb>
<bank>
<response>
<result>
<command-type>GET_SEED</command-type>
<code>10000</code>
<message>Command Successful!</message>
<time>2010-01-01 18:00:01</time>
</result>
<data>
<seed>49831498</seed>
</data>
</response>
</bank>
</eweb>
STR;$xml = simplexml_load_string($xmlStr);
$parserArr = array();
foreach( $xml->bank[0]->response[0]->result[0]->children() as $child){
$name = $child->getName();
$parseArr[$name] = (String) $child;
}
print_r($parseArr);
?>