如何在PHP中将XML反序列化为完整的对象

时间:2012-01-18 12:55:57

标签: php object simplexml xml-deserialization

我需要一些帮助,我在这里找到了很多关于如何从对象访问值的答案。 但没有办法在可用的对象中实现xml,因为当我尝试使用这个xml中的simplexml_load_string()函数时:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header />
    <soapenv:Body>
        <e:EnviarLoteRpsEnvio xmlns:e="http://www.betha.com.br/e-nota-contribuinte-ws">
... SOME IMPORTANT XML ...
</e:EnviarLoteRpsEnvio>
    </soapenv:Body>
</soapenv:Envelope>

这会丢失一些包含名称空间并显示不完整结果的数据:

object(SimpleXMLElement)#1 (2) { ["Header"]=> object(SimpleXMLElement)#2 (0) { } ["Body"]=> object(SimpleXMLElement)#3 (0) { WOULD SHOW A LOT OF IMORTANT XML HERE, BUT DONT. } } 

我知道要获取这些值,我们需要指定命名空间并使用xpath,如:

$obj_xml_lote->registerXPathNamespace('e','http://www.betha.com.br/e-nota-contribuinte-ws');

好吧,但是要访问,我需要一个完整的对象来发送到网络服务。

0 个答案:

没有答案