php - 读取 Soap Response XML 并插入到 mysql 中

标签 php mysql xml soap

我正在尝试从 XML SOAP 文件读取响应,然后需要将其插入数据库

这是 XML 代码

 <SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
  <MobileAgentAPI:invokeResponse>
   <invokeReturn>
   <values xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="MobileAgentAPI:SoapMapValue[4]">
     <item>
      <name>balance</name>
      <singleValue>330123</singleValue>
     </item>
     <item>
      <name>returnCode</name>
      <singleValue>00</singleValue>
     </item>
     <item>
      <name>transactionStatus</name>
      <singleValue>00</singleValue>
     </item>
     <item>
      <name>errorCode</name>
      <singleValue>0</singleValue>
     </item>
     </values>
    </invokeReturn>
   </MobileAgentAPI:invokeResponse>
  </SOAP-ENV:Body>

问题是。 我如何读取响应然后将数据插入mysql?

提前致谢

------更新--------------------------------

我尝试过这种方法

$combi = '<XML Response>';

$doc = new DOMDocument();
$doc->loadXML($combi);
echo $doc->getElementsByTagName('name')->item(0)->nodeValue;

它返回

balance

如何循环遍历每个节点? 并打印它就像 余额:330123 返回码:00 错误代码:0

然后插入mysql

最佳答案

您可以通过 PHP 中的 DOMDocument 加载 XML 并遍历每个节点

更多信息:http://php.net/manual/de/class.domdocument.php

如果您能具体说明您的问题,我可以为您提供更多帮助

更新:

$dom = new DOMDocument;
$dom->loadXML($xml);
$books = $dom->getElementsByTagName('book');
foreach ($books as $book) {
    echo $book->nodeValue, PHP_EOL;
}

您可以为每个节点实现 sql 代码,而不是 echo

更新2:

$doc->loadXML($combi);
$data = $doc->getElementsByTagName('item'); 
foreach($data as $data){ 
 echo $data->item(0)->nodeValue . " : " . $data->item(1)->nodeValue, PHP_EOL; 

 }

关于php - 读取 Soap Response XML 并插入到 mysql 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32514785/

相关文章:

java - 使用 xml 属性在 java 中进行 XML 到 JSON 的转换

php - National Instruments USB 6008 和 Linux

php - 关于继承的 PHP 魔术方法 __get 和 __set

php - 如何通过用户名为用户创建多个目录

php - 使用 session 变量从 mysql 服务器调用数据

java - 为什么在执行 XSLT 转换时会出现 "Premature End of File"错误?

c# - xml 架构将范围添加到属性和文本 block

php - SilverStripe:如何在模板中呈现正常的 for-each 循环

mysql - 在搜索 WordPress 中禁用默认正则表达式

Mysql ERROR 1093 (HY000) 更新一行