我正在尝试解析来自肥皂服务的 xml 响应。但是,我无法让 simplexml_load_string 工作!这是我的代码:
//make soap call
objClient = new SoapClient('my-wsdl',
array('trace' => true,'exceptions' => 0, 'encoding' => 'UTF-8'));
$soapvar = new SoapVar('my-xml', XSD_ANYXML);
$objResponse = $objClient->__soapCall($operation, array($soapvar));
//process result
$str_xml = $objClient->__getLastResponse();
$rs_xml = simplexml_load_string($str_xml);
...$rs_xml 总是只有一个名为 Envelope 的元素。
但是,如果我使用 *"print var_export($objClient->__getLastResponse(),true);"* 将结果转储到我的浏览器,然后将其作为字符串变量剪切并粘贴到我的代码中,它可以正常工作!这就是我的意思:
$str_xml = 'my cut and pasted xml';
$rs_xml = simplexml_load_string($str_xml);
因此,问题似乎与 $objClient->__getLastResponse() 对其创建的字符串所做的某些事情有关......但我不知道问题是什么或如何解决它。