我正在尝试从 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/