我使用下面的代码来获取xml数据。我不能以任何其他方式执行此操作,因为我将其用于我的iOS应用程序,并且我正在按照我的预期接收响应作为xml元素。当我在浏览器中运行它时,我只看到xml节点的值。
例如,这是我的xml:
<Message version="1.0" messageId="12">
<SaleResponse>
<OrderId>1234</OrderId>
<OrderAmount>1.0</OrderAmount>
</SaleResponse>
</Message>
这正是我在ios应用程序中获得的输出,但在我的浏览器中我得到了这个:
12341.0
这是我的PHP代码:
<?php
$url = 'https://something.com';
$ch = curl_init($url);
$inp = $_REQUEST["xmlpost"];
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-type: application/xml',
'TX_URL: something.com',
'TX_TokenExID: something',
'TX_APIKey: something' ));
curl_setopt($ch, CURLOPT_POSTFIELDS, $inp);
$result = curl_exec($ch);
echo $result;
?>
那么如何将result
作为xml处理并分别取出每个标签?
提前致谢
答案 0 :(得分:1)
通过php函数simplexml_load_string
运行你的字符串:
$result = simplexml_load_string($result);
echo $result->SaleResponse->OrderId
<?php
//or in an actual example
$string = '<Message version="1.0" messageId="12">
<SaleResponse>
<OrderId>1234</OrderId>
<OrderAmount>1.0</OrderAmount>
</SaleResponse>
</Message>';
$obj= simplexml_load_string($string);
echo '<pre>';
print_r($obj);