我有跟随xml,其中第一个节点是<Cancellation>
<?xml version='1.0' encoding='UTF-8'?>
<Cancellation>
<version>message-version</version>
<customerID>customer-identifier</customerID>
<invoiceID>invoice-number</invoiceID>
<cancellationDate>yyyy-mm-dd</cancellationDate>
<reason>reason</reason>
<reasonCode>reason-code</reasonCode>
<attempts>attempts-count</attempts>
<merchantID>rocketgate merchant-identifier</merchantID>
<merchantSiteID>site-id</merchantSiteID>
<udf01>user-data</udf01>
</Cancellation>
最终我可能会有一个类似的xml但是有一个完整的不同过程,比如注册,如下所示:
<?xml version='1.0' encoding='UTF-8'?>
<Registration>
<version>message-version</version>
<customerID>customer-identifier</customerID>
<invoiceID>invoice-number</invoiceID>
<merchantID>rocketgate merchant-identifier</merchantID>
<merchantSiteID>site-id</merchantSiteID>
<udf01>user-data</udf01>
</Registration>
我需要在if条件中捕获第一个节点以重定向到适当的路径。
在link之后,我从发送的xml中获得了一个数组:
$xmlString = trim(file_get_contents('php://input'));
$xmlObj = simplexml_load_string($xmlString);
$xmlJSON = json_encode($xmlObj);
$xmlArray = json_decode($xmlJSON, true);
但问题是,在将xml字符串传递给对象后,我无法看到第一个<Cancellation>
或<Registration>
节点。
即使php doc中的示例也未显示第一个节点。
我需要测试它是取消还是注册。我怎么能这样做?
答案 0 :(得分:2)
要在XML中查找根元素的标记名称,只需在SimpleXMLElement上使用getName()
...
echo $xmlObj->getName();