php - 想要同时提取从以下 XML 响应中使用 PHP
问题描述
我有一个 SMS API,并且想要使用 PHP 提取所有传出 SMS 的 XML 响应,请指导我的朋友。这是我的 API 响应
<response xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<action>sendmessage</action>
<data>
<acceptreport>
<statuscode>0</statuscode>
<statusmessage>Message accepted for delivery</statusmessage>
<messageid>223639802</messageid>
<originator>88434</originator>
<recipient>923336458112</recipient>
<messagetype>SMS:TEXT</messagetype>
<messagedata>testing by JAved for DLS</messagedata>
</acceptreport>
<acceptreport>
<statuscode>0</statuscode>
<statusmessage>Message accepted for delivery</statusmessage>
<messageid>223639803</messageid>
<originator>88434</originator>
<recipient>923497105188</recipient>
<messagetype>SMS:TEXT</messagetype>
<messagedata>testing by JAved for DLS</messagedata>
</acceptreport>
</data>
</response>
解决方案
请阅读上面的评论,至少下次尝试自己解决问题。这应该可以解决您的问题:
<?php
$xmlstr = '<response xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<action>sendmessage</action>
<data>
<acceptreport>
<statuscode>0</statuscode>
<statusmessage>Message accepted for delivery</statusmessage>
<messageid>223639802</messageid>
<originator>88434</originator>
<recipient>923336458112</recipient>
<messagetype>SMS:TEXT</messagetype>
<messagedata>testing by JAved for DLS</messagedata>
</acceptreport>
<acceptreport>
<statuscode>0</statuscode>
<statusmessage>Message accepted for delivery</statusmessage>
<messageid>223639803</messageid>
<originator>88434</originator>
<recipient>923497105188</recipient>
<messagetype>SMS:TEXT</messagetype>
<messagedata>testing by JAved for DLS</messagedata>
</acceptreport>
</data>
</response>';
$xml = new SimpleXMLElement($xmlstr);
echo $xml->data->acceptreport->messageid;
我还注意到您的 xml 中缺少“响应”结束标记,因此这可能是您遇到的问题。我在这个例子中添加了它。
推荐阅读
- pandas - 如何用键保存分组结果索引?
- reactjs - 如何在 Parent 的孩子中使用 ref 访问 Child - React@latest
- javascript - 如何配置 ESLint 以捕获未声明的局部变量
- c++ - 为什么别名声明不是有效的初始化语句(/simple-declaration)?
- visual-studio-code - VS 代码中的扩展警告
- javascript - 添加新属性的对象循环数组不起作用
- oracle - RMAN 备份因文件写入错误而失败
- azure - Azure Data Lake Gen2 与存储帐户
- python - 如何从 GridSearchCV 输出可视化 XGBoost 树?
- java - 我在保存一个称为分区等于子集和的动态编程问题时遇到问题