【问题标题】:How to access the properties of an XML string converted to an object如何访问转换为对象的 XML 字符串的属性
【发布时间】:2013-08-20 22:59:24
【问题描述】:

我使用了一个以XML 格式返回结果的网络服务。 simplexml_load_string() 方法用于将其转换为如下对象:

$xml = simplexml_load_string($result[$webresult]);

以下是使用示例显示 print_r($xml)

SimpleXMLElement Object ( [record] => SimpleXMLElement Object ( [txnref] => 6113229211825720 [channel] => mastercard [amount] => 3000.00 [payment_date] => 8/17/2013 9:18:25 PM [payment_status] => successful [field_values] => SimpleXMLElement Object ( [field_values] => SimpleXMLElement Object ( [field] => Array ( [0] => SimpleXMLElement Object ( [names] => Frank [acct_desc] => False [acct_desc_order] => 0 [hidden] => False [defaultvalue] => SimpleXMLElement Object ( ) [xpath_field] => 0 ) [1] => SimpleXMLElement Object ( [amount] => 3000 [acct_desc] => False [acct_desc_order] => 0 [hidden] => False [defaultvalue] => SimpleXMLElement Object ( ) [xpath_field] => 0 ) [2] => SimpleXMLElement Object ( [currency] => NGN [acct_desc] => False [acct_desc_order] => 0 [hidden] => False [defaultvalue] => SimpleXMLElement Object ( ) [xpath_field] => 0 ) [3] => SimpleXMLElement Object ( [email_address] => chibuzo.henry@gmail.com [acct_desc] => False [acct_desc_order] => 0 [hidden] => False [defaultvalue] => SimpleXMLElement Object ( ) [xpath_field] => 0 ) [4] => SimpleXMLElement Object ( [phone_number] => 08035653468 [acct_desc] => False [acct_desc_order] => 0 [hidden] => False [defaultvalue] => SimpleXMLElement Object ( ) [xpath_field] => 0 ) [5] => SimpleXMLElement Object ( [merch_txnref] => 134 [acct_desc] => False [acct_desc_order] => 0 [hidden] => False [defaultvalue] => SimpleXMLElement Object ( ) [xpath_field] => 0 ) ) ) ) [payment_status_description] => Transaction Successful - Approved ) )

但是,当我尝试访问对象 $xml 时,这样:

$xml->amount;

它不返回任何结果。如何正确访问对象的属性?

【问题讨论】:

    标签: php xml object xml-parsing


    【解决方案1】:

    amount 属性在一个记录对象中,所以试试$xml->record->amount;

    【讨论】:

      【解决方案2】:

      金额在 Record 对象中,所以使用$xml->record->amount;

      首先,您打印一个 Web 服务响应,记住一个必要的步骤

      使用echo "<pre>";

      然后你打印你的array

      例如:

      echo "<pre>";
      print_r($xml);
      

      那只有你看清楚数组格式了

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-05
        • 2017-02-17
        • 1970-01-01
        • 2012-07-11
        相关资源
        最近更新 更多