2015-09-11 3 views
0

я пытаюсь прочитать ответ из файла XML SOAP, а затем мне нужно, чтобы вставить его в базу данныхчтения Soap Response XML и вставить в MySQL

здесь XML-Code

<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 

как я петлю через каждый узел? и распечатать его как баланс: 33 код возврата: 00 ERRORCODE: 0

, а затем вставьте его в MySQL

ответ

1

Вы можете загрузить XML с помощью DOMDocument в PHP и пройти через каждый узел

более по адресу: http://php.net/manual/de/class.domdocument.php

, если вы можете задать свой вопрос я мог бы помочь вам больше

UPDA т.е:

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

вместо эхо вы могли бы реализовать свой код SQL для каждого узла

обновления 2:

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

} 
+0

я буду обновлять вопрос спасибо – mabbs

+0

я обновил вопрос – mabbs

+0

я 'Пробовал $ doc-> loadXML ($ combi); $ data = $ doc-> getElementsByTagName ('item'); foreach ($ data as $ data) { echo $ book-> nodeValue, PHP_EOL; } и он возвращает returnCode00 transactionStatus00 dateTime1441955362000 errorCode0 НоминалS1 | lastBalance315123 | – mabbs