日期:2014-05-17  浏览次数:20561 次

一个接口,能得到返回的xml文件,如何提取有用的内容?
接口调用后,$result= 能得到以下内容:

stdClass Object
(
    [out] => <?xml version="1.0" encoding="GB2312"?>
<result>
 <flights>
 <flight orgCity="SHA" departTerm="T2" dstCity="CAN" arrivalTerm="--" airComp="MU" flightno="MU5307" planeType="320" startTime="2012-07-20 07:30" endTime="2013-07-20 09:50" stopNumber="0" mealCode="S">
<cabins><cabin cabinCode="Y" cabinType="0" cabinDiscount="100" cabinName="经济舱" cabinSales="A" ibePrice="1280" encryptString="79fccacuigjjdskf" /></cabins>
<cabin cabinCode="A" cabinType="0" cabinDiscount="250" cabinName="头等折扣舱" cabinSales="A" ibePrice="2830" encryptString="1c9cc629e7f7b1a" ></cabin>
? </flight>
</flights>
? <is_success>T</is_success>
</result>
)


以前做这直接读取 xml的,可这种带了一个stdClass Object(  [out] =>

不知道应该如何读到各节点内容了

------解决方案--------------------
如果你对对象操作不熟悉,可以先转换为数组,这样会方便一些。
你获取的对象很简单, $result->out 就是这个XML字符串,若是想提取其中的内容,可以尝试字符串提取,或者解析XML为对象再转数组(推荐)。
http://www.php.net/manual/zh/language.oop5.properties.php


------解决方案--------------------
直接打印
echo $result->out;

作为xml解析
$xml = simplexml_load_string($result->out);
print_r($xml);
SimpleXMLElement Object
(
    [flights] => SimpleXMLElement Object
        (
            [flight] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [orgCity] => SHA
                            [departTerm] => T2
                            [dstCity] => CAN
                            [arrivalTerm] => --
                            [airComp] => MU
                            [flightno] => MU5307