从PHP中的回显XML响应中解析数据

时间:2012-05-25 09:29:28

标签: php xml web-services xml-parsing echo

我正在开发一个Web服务集成项目。现在,使用cURL方法传递请求并获取XML响应。我没有保存XML响应文件,而是在我的页面中回应了XML响应(认为它将节省服务器响应时间)。现在我在我的页面中得到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响应中读取数据。

需要帮助。提前谢谢。

2 个答案:

答案 0 :(得分:1)

使用XML使用DOM PHP类。它非常容易理解且非常强大。

只需加载您的响应XML:

$dom = new DOMDocument;

$dom->loadXML($responsestring);

然后,您可以通过DOMDocument方法执行任何操作DOM的操作。

答案 1 :(得分:0)

您可能希望阅读SimpleXML,让您将xml文档转换为对象,使其更易于阅读和操作。即

$xml_object = new SimpleXMLElement($xmlstr);