如何在 php 中从输出 xml 结果访问属性和值



我正在通过第三方提供的API将支付网关集成到我的网站中,我确实成功了。当它处理付款并在所谓的success.php页面中返回成功结果时,我从他们的simplexml_load_string($result)收到已经输出的xml,该xml像这样打印在success.php页面中。

SimpleXMLElement Object
(
[error_code] => 00
[token] => 1182263526325de72aw828369e7aa
[description] => SimpleXMLElement Object
(
)
[transaction_status] => 00
[receiver_email] => myemail@gmail.com
[order_code] => 3212423
[total_amount] => 200
[payment_method] => SimpleXMLElement Object
(
)
[bank_code] => NLAZ
[payment_type] => 1
[order_description] => SimpleXMLElement Object
(
)
[tax_amount] => 0
[discount_amount] => 0
[fee_shipping] => 0
[return_url] => success.php
[cancel_url] => order.php
[buyer_fullname] => eric phuong
[buyer_email] => eric@domain.com
[buyer_mobile] => 012108609
[buyer_address] => abc
[affiliate_code] => SimpleXMLElement Object
(
)
[transaction_id] => 12345
)

我想做的是:

  1. 将上面的输出结果放入一个变量中,以便我可以获取值。如何在 php 和 .php 中做到这一点?我应该这样说还是怎么说?

    <?php> 00 .... .XML; ?>

  2. 尝试获取所有值,例如012108609, eric@domain.com, etcbuyer_mobile, buyer_email, etc

你能帮忙吗?

谢谢

埃里克

P/S:我也尝试https://stackoverflow.com/questions/25522047/php-xml-to-array-object-with-attributes-and-values阅读此条目并应用它,但没有成功。

注意:我已经知道如何解析 xml 文件以获取数组值,但在这种情况下的过程完全不同,它已经在success.php页面中输出和回显。我试图获得这些值,但这似乎超出了我的知识范围。 如果您的问题不够清楚,我可以根据要求进行更新。

你可以从返回simplexml_load_string($result)中获得 SimpleXMLElement

然后,您可以访问这些属性并将它们强制转换为字符串,因为 SimpleXMLElement 具有__toString方法。

$variable = simplexml_load_string($result);
$buyerMobile = (string)$variable->buyer_mobile;
$buyerEmail = (string)$variable->buyer_email;

如果要从该响应中获取值,则可以使用具有交替的正则表达式,并使用K重置报告匹配项的起点:

[buyer_(?:email|mobile|fullname|address)] =>s*K.*

演示

相关内容

  • 没有找到相关文章