0

我是 php XML 的新手。另外,我在这里浏览了有关此主题的许多主题。

可能有一点小故障,但我无法阅读此内容。

这是我正在按照其中一个线程阅读它的方法。

        //parse xml string into SimpleXML objects
        $returnxml = simplexml_load_string($result);

        if ($returnxml === false) {
            die('Error parsing Return XML');
        }

        //now we can loop through the xml structure
        foreach ($returnxml->channel->item as $item) {
            print $item->title;
        }

使用上面的代码我没有得到任何东西

这是使用 CURL 的实际 [EXACT] XML 响应

<?xml version="1.0" encoding="ISO-8859-1"?>
&lt;ncresponse

orderID="120130414021640"

PAYID="BESALDOM 516A65F5E5E"

STATUS="4"

NCSTATUS="0"

NCERROR=""

NCERRORPLUS="Your transaction has been submitted for processing."

ACCEPTANCE="BINF-"

IPCTY=""

CCCTY=""

IDUsager="7884TSMA"

/&gt;

接下来这是我正在使用的 CURL 代码,看起来还不错。

    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL, $this->omnipayment_action_url);
    curl_setopt($ch,CURLOPT_POST, count($myorder));
    curl_setopt($ch,CURLOPT_POSTFIELDS, $flds);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    $result = curl_exec($ch);
    curl_close($ch);

在此先感谢,任何帮助将不胜感激...

4

2 回答 2

1

正如阿迪迪正确指出的那样,您并没有试图从正确的位置获取提供给您的信息。您需要的信息在根节点中并存储为属性,这是一个快速示例,展示了如何获取这些信息:-

<?php
function parse_response($response) {
    $xml = new SimpleXMLElement($response);
    $arr = array();
    foreach($xml->attributes() as $key => $value) {
        $arr[(string)$key] = (string)$value;
    }
    return $arr;
}

var_dump(parse_response($str));
/*
    array(10) {
      ["orderID"]=>
      string(15) "120130414021640"
      ["PAYID"]=>
      string(20) "BESALDOM 516A65F5E5E"
      ["STATUS"]=>
      string(1) "4"
      ["NCSTATUS"]=>
      string(1) "0"
      ["NCERROR"]=>
      string(0) ""
      ["NCERRORPLUS"]=>
      string(51) "Your transaction has been submitted for processing."
      ["ACCEPTANCE"]=>
      string(5) "BINF-"
      ["IPCTY"]=>
      string(0) ""
      ["CCCTY"]=>
      string(0) ""
      ["IDUsager"]=>
      string(8) "7884TSMA"
    }
*/
于 2013-04-14T10:17:33.210 回答
0

简单加载xml文件..

<?php
$xml = @simplexml_load_string($result);

$status = (string)$xml->Status; 
$operator_trans_id = (string)$xml->OPID;
$trns_id = (string)$xml->TID;
于 2015-07-22T06:14:36.320 回答