simplexmlelement - PHP 如何得到simplexml_load_string 的值
巴扎黑
巴扎黑 2017-04-10 15:14:13
[PHP讨论组]

问题

/**
 * 通过节点路径返回字符串的某个节点值
 * $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充值2014123069117121default@gmail.com2014-12-30 22:12:32trade_status_sync114123022894432014-12-30 22:12:562088211987518229TRADE_FINISHEDN0.112014-12-30 22:12:56zfb@gmail.cn2014-12-30 22:12:560.1120881021937912118f3d3703e293b95d8de26cbd51d74fe116N',
);


$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 的值

巴扎黑
巴扎黑

全部回复(3)
天蓬老师
var_dump( (String)$out_trade_no ); 
伊谢尔伦

simplexml解析得到的是simpleElement对象,需要类型转换,如公子所说的方法即可

巴扎黑
$doc = new DOMDocument();
$doc->loadXML($_POST['notify_data']);
$doc->getElementsByTagName( "out_trade_no" )->item(0)->nodeValue;
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号