如何在PHP中循环/解析SOAP响应以获得所有结果

时间:2018-07-24 10:48:00

标签: php soap soapui

我是PHP和SOAP的新手,并试图在我的PHP代码中获取值SOAP响应。
使用下面的代码,我可以得到一组响应,但不能得到全部三个。

if (count($triphistory->TripHistoryList) > 0) {
           $trip_history_data = $triphistory->TripHistoryList[0];

下面是SOAP响应,我必须获取“ TripHistoryList”的所有值。

<ns2:TripHistoryList>
        <ns2:TagSerialNumber>6501099999999</ns2:TagSerialNumber>
        <ns2:PlateNumber>ABCD</ns2:PlateNumber>
        <ns2:PlateState>VA</ns2:PlateState>
        <ns2:TxnTime>2018-07-20T23:22:30.080-04:00</ns2:TxnTime>
        <ns2:PlazaId>495010</ns2:PlazaId>
        <ns2:Zone>1</ns2:Zone>
        <ns2:HovSW>H</ns2:HovSW>
        <ns2:HovNom>H</ns2:HovNom>
     </ns2:TripHistoryList>
     <ns2:TripHistoryList>
        <ns2:TagSerialNumber>6501099999999</ns2:TagSerialNumber>
        <ns2:PlateNumber>XYZA</ns2:PlateNumber>
        <ns2:PlateState>VA</ns2:PlateState>
        <ns2:TxnTime>2018-07-20T23:22:30.080-04:00</ns2:TxnTime>
        <ns2:PlazaId>951010</ns2:PlazaId>
        <ns2:Zone>1</ns2:Zone>
        <ns2:HovSW>H</ns2:HovSW>
        <ns2:HovNom>H</ns2:HovNom>
     </ns2:TripHistoryList>
     <ns2:TripHistoryList>
        <ns2:TagSerialNumber>6501099999999</ns2:TagSerialNumber>
        <ns2:PlateNumber>UGHF</ns2:PlateNumber>
        <ns2:PlateState>VA</ns2:PlateState>
        <ns2:TxnTime>2018-07-20T23:22:30.080-04:00</ns2:TxnTime>
        <ns2:PlazaId>951010</ns2:PlazaId>
        <ns2:Zone>1</ns2:Zone>
        <ns2:HovSW>T</ns2:HovSW>
        <ns2:HovNom>T</ns2:HovNom>
     </ns2:TripHistoryList>  

仅供参考:我将显示以下输出。感谢您的帮助

<tbody>
        <tr>
            <th width="20%">Tag Serial Number</th>
            <th width="20%">Plate_Number</th>
            <th width="20%">REAR PLATE JURISDICTION</th>
            <th width="20%">TXN TIMESTAMP</th>
            <th width="20%">PLAZA ID</th>
            <th width="20%">ZONE LANE</th>
            <th width="20%">LINK ID</th>
            <th width="20%">HOV SW</th>
            <th width="20%">HOV NOM Due</th>
        </tr>
        <tr>
               <td width="20%"><?php e($trip_history_data->TagSerialNumber); ?></td>
              <td width="20%"><?php e($trip_history_data->PlateNumber); ?></td>
              <td width="20%"><?php e($trip_history_data->PlateState); ?></td>
               <td width="20%"><?php e($trip_history_data->TxnTime); ?></td>
              <td width="20%"><?php e($trip_history_data->PlazaId); ?></td>
              <td width="20%"><?php e($trip_history_data->Zone); ?></td>
             <td width="20%"><?php e($trip_history_data->PlazaId); ?></td>
             <td width="20%"><?php e($trip_history_data->HovSW); ?></td>
              <td width="20%"><?php e($trip_history_data->HovNom); ?></td>
 </tr>

1 个答案:

答案 0 :(得分:0)

您可以将代码更改为

<?php 
          foreach($trip_history_data as $data) {
?>
<tr>
               <td width="20%"><?php e($data->TagSerialNumber); ?></td>
              <td width="20%"><?php e($data->PlateNumber); ?></td>
              <td width="20%"><?php e($data->PlateState); ?></td>
               <td width="20%"><?php e($data->TxnTime); ?></td>
              <td width="20%"><?php e($data->PlazaId); ?></td>
              <td width="20%"><?php e($data->Zone); ?></td>
             <td width="20%"><?php e($data->PlazaId); ?></td>
             <td width="20%"><?php e($data->HovSW); ?></td>
              <td width="20%"><?php e($data->HovNom); ?></td>
 </tr>
<?php } ?>