2012-05-25 16 views
1

我正在開發一個web服務集成項目。現在,使用cURL方法傳遞請求並獲取XML響應。我沒有保存XML響應文件,而是在頁面中迴應XML響應(認爲它會節省服務器響應時間)。現在,我得到呼應這樣在我的網頁XML響應,從PHP中的回顯XML響應中解析數據

<?xml version="1.0" encoding="UTF-8"?> 
<SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" > 
<SOAP-ENV:Body> 
    <CreateShipmentReply xmlns="http://www.parcelforce.net/ws/ship/v5"> 
    <CompletedShipmentInfo>  
     <Status>ALLOCATED</Status> 
     <CompletedShipments> 
     <CompletedShipment> 
      <ShipmentNumber>MK0030912</ShipmentNumber> 
     </CompletedShipment> 
     </CompletedShipments> 
     <RequestedShipment> 
     <DepartmentId>1</DepartmentId> 
     <ShipmentType>DELIVERY</ShipmentType> 
     <ContractNumber>P664383</ContractNumber> 
     <ServiceCode>SUP</ServiceCode> 
     <ShippingDate>2012-05-25</ShippingDate> 
     <RecipientContact> 
      <BusinessName>BUSINESS NAME</BusinessName> 

爲了在XML數據保存到我的數據庫/表我需要從節點解析它。我有一個解析保存文件中的XML的代碼,但在回顯的XML響應中找不到相同的解決方案。我如何從迴應的XML響應中讀取數據?

需要幫助。提前致謝。

+0

爲什麼不使用PHP SOAP類集合(http://php.net/manual/en/book.soap.php)? –

+0

如果你的xml文件不是很大,請使用SimpleXml,否則你可以使用DOM XML –

+0

@webbandit SOAP類不能正常使用我正在使用的wsdl,因此我選擇了cURL。 –

回答

1

要使用XML使用DOM PHP類工作。這很容易理解並且非常強大。

由剛剛加載XML響應:

$dom = new DOMDocument; 

$dom->loadXML($responsestring); 

然後,你可以做任何你想做的DOM操作DOM文檔,雖然方法。

+0

感謝您的參考,我會試試這個。 –

+0

感謝您的幫助。這對我來說很好。 –

0

您可能想要閱讀SimpleXML,它可以讓您將xml文檔轉換爲對象,使它們更易於閱讀和操作。即

$xml_object = new SimpleXMLElement($xmlstr);

+0

感謝您的快速回放。我會試試這個。 –