/**
* 通过节点路径返回字符串的某个节点值
* $res_data——XML 格式字符串
* 返回节点参数
*/
function getDataForXML($res_data, $node)
{
$xml = simplexml_load_string($res_data);
$result = $xml->xpath($node);
while (list(, $node) = each($result)) {
return $node;
}
}
$_POST = array(
'service' => 'alipay.wap.trade.create.direct',
'sign' => 'db56d137c71f591abd58b41d5da5f920',
'sec_id' => 'MD5',
'v' => '1.0',
'notify_data' => '1 充值 2014123069117121 default@gmail.com 2014-12-30 22:12:32 trade_status_sync 1 1412302289443 2014-12-30 22:12:56 2088211987518229 TRADE_FINISHED N 0.11 2014-12-30 22:12:56 zfb@gmail.cn 2014-12-30 22:12:56 0.11 2088102193791211 8f3d3703e293b95d8de26cbd51d74fe116 N ',
);
$out_trade_no = getDataForXML($_POST['notify_data'],'/notify/out_trade_no');
var_dump( ($out_trade_no == '1412302289443' )); //true
var_dump($out_trade_no);//object(SimpleXMLElement)[2]
如何才可以得到 $out_trade_no 的值
/**
* 通过节点路径返回字符串的某个节点值
* $res_data——XML 格式字符串
* 返回节点参数
*/
function getDataForXML($res_data, $node)
{
$xml = simplexml_load_string($res_data);
$result = $xml->xpath($node);
while (list(, $node) = each($result)) {
return $node;
}
}
$_POST = array(
'service' => 'alipay.wap.trade.create.direct',
'sign' => 'db56d137c71f591abd58b41d5da5f920',
'sec_id' => 'MD5',
'v' => '1.0',
'notify_data' => '1 充值 2014123069117121 default@gmail.com 2014-12-30 22:12:32 trade_status_sync 1 1412302289443 2014-12-30 22:12:56 2088211987518229 TRADE_FINISHED N 0.11 2014-12-30 22:12:56 zfb@gmail.cn 2014-12-30 22:12:56 0.11 2088102193791211 8f3d3703e293b95d8de26cbd51d74fe116 N ',
);
$out_trade_no = getDataForXML($_POST['notify_data'],'/notify/out_trade_no');
var_dump( ($out_trade_no == '1412302289443' )); //true
var_dump($out_trade_no);//object(SimpleXMLElement)[2]
如何才可以得到 $out_trade_no 的值
var_dump( (String)$out_trade_no );
simplexml解析得到的是simpleElement对象,需要类型转换,如公子所说的方法即可
$doc = new DOMDocument();
$doc->loadXML($_POST['notify_data']);
$doc->getElementsByTagName( "out_trade_no" )->item(0)->nodeValue;