Forum Discussion

Khairul's avatar
Khairul
New Contributor
12 years ago

How to Extract Soap XML to php variable?


<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header/>
<soapenv:Body>
<m:getBillStatementHistoryListResponse xmlns:m="http://umobile.ericsson.com.my">
<m:return xmlns:java="java:my.com.ericsson.umobile.billing.data">
<n1:RequestID xmlns:n1="java:my.com.ericsson.umobile.billing">ddddd</n1:RequestID>
<java:Error xsi:nil="true"/>
<java:Status>201</java:Status>
<java:TransactionId>03488f07-b49e-4d4c-be70-11a697a79b35</java:TransactionId>
<java:ErrorMessage xsi:nil="true"/>
<java:BillStatements>
<java:BillingAccountCode>ABC123</java:BillingAccountCode>
<java:BillingAccountName>Nm_270</java:BillingAccountName>
<java:DocumentRefNumber>20121001018471686</java:DocumentRefNumber>
<java:DueDate>2012-11-15T00:00:00+08:00</java:DueDate>
<java:StatementDate>2012-10-01T00:00:00+08:00</java:StatementDate>
<java:StatementAmount>
<java:Amount>0.0</java:Amount>
<java:Currency>MYR</java:Currency>
</java:StatementAmount>
<java:EntryDate>2012-10-01T00:00:00+08:00</java:EntryDate>
</java:BillStatements>
<java:BillStatements>
<java:BillingAccountCode>ABC123</java:BillingAccountCode>
<java:BillingAccountName>Nm_270</java:BillingAccountName>
<java:DocumentRefNumber>20120901018338058</java:DocumentRefNumber>
<java:DueDate>2012-10-15T00:00:00+08:00</java:DueDate>
<java:StatementDate>2012-09-01T00:00:00+08:00</java:StatementDate>
<java:StatementAmount>
<java:Amount>0.0</java:Amount>
<java:Currency>MYR</java:Currency>
</java:StatementAmount>
<java:EntryDate>2012-09-01T00:00:00+08:00</java:EntryDate>
</java:BillStatements>
<java:BillStatements>
<java:BillingAccountCode>ABC123</java:BillingAccountCode>
<java:BillingAccountName>Nm_270</java:BillingAccountName>
<java:DocumentRefNumber>20120801018209546</java:DocumentRefNumber>
<java:DueDate>2012-09-15T00:00:00+08:00</java:DueDate>
<java:StatementDate>2012-08-01T00:00:00+08:00</java:StatementDate>
<java:StatementAssssmount>
<java:Amount>0.0</java:Amount>
<java:Currency>MYR</java:Currency>
</java:StatementAmount>
<java:EntryDate>2012-08-01T00:00:00+08:00</java:EntryDate>
</java:BillStatements>
<java:BillStatements>
<java:BillingAccountCode>ABC123</java:BillingAccountCode>
<java:BillingAccountName>Nm_270</java:BillingAccountName>
<java:DocumentRefNumber>20120701018094254</java:DocumentRefNumber>
<java:DueDate>2012-08-15T00:00:00+08:00</java:DueDate>
<java:StatementDate>2012-07-01T00:00:00+08:00</java:StatementDate>
<java:StatementAmount>
<java:Amount>0.0</java:Amount>
<java:Currency>MYR</java:Currency>
</java:StatementAmount>
<java:EntryDate>2012-07-01T00:00:00+08:00</java:EntryDate>
</java:BillStatements>
</m:return>
</m:getBillStatementHistoryListResponse>
</soapenv:Body>
</soapenv:Envelope>


Hi all. im newbie. i cannot find the way to extract this soap xml using php. i want to get the values within BillStatements (foreach - loop)

Thanks..

3 Replies

  • nmrao's avatar
    nmrao
    Icon for Champion Level 1 rankChampion Level 1
    How is your requirement related to soapui ? May be you should look into php or relevant forums.
  • Khairul's avatar
    Khairul
    New Contributor
    Hi nmrao,

    The client gave us the data through soapiu and we need to extract them to get the data within page.

    Here the sample code we use now but i dont have solution how to get the multiple values from soapiu xml (i want to get the values within BillStatements (foreach - loop))

    <?php
    $getBillStatementHistoryList = call_curl('getBillStatementHistoryList','<java:RequestID>'.$_SESSION['MM_UserTicket'].'</java:RequestID><java1:Msisdn>'.$_SESSION['MM_Msisdn'].'</java1:Msisdn><java1:FromDate>2012-01-01</java1:FromDate><java1:ToDate>'.date("Y-m-d").'</java1:ToDate>');
    $xml_getBillStatementHistoryList = simplexml_load_string($getBillStatementHistoryList);
    $xml_getBillStatementHistoryList->registerXPathNamespace('soapenv', 'http://schemas.xmlsoap.org/soap/envelope/');
    $xml_getBillStatementHistoryList->registerXPathNamespace('java', 'java:my.com.ericsson.umobile.billing');

    (string)$xml_getBillStatementHistoryList->children('soapenv', true)->Body->children('m', true)->getCustomerDetailsResponse->return->children('java', true)->BillStatements; ?>
  • nmrao's avatar
    nmrao
    Icon for Champion Level 1 rankChampion Level 1
    I believe that soapui project/request you are processing is an xm file. So, all you need is how to process xml in the language you are using.