读取Soap响应XML并插入到mysql中


read Soap Response XML and insert into mysql

我正试图从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?

thanks in advance

——更新 -------------------

我试过这个方法

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

返回

balance

如何遍历每个节点?然后打印成这样余额:330123returnCode: 00errorCode: 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; 
 }