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