PHP simplexml_load_string不加载

时间:2014-05-22 15:06:44

标签: php xml simplexml

我试图像这样使用simplexml_load_string:

$xml = '<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <data_GetResult xmlns="http://api.source.com/">
      <data_GetData>
        <value>123456</value>
        <value>789000</value>
      </data_GetData>
    </data_GetResult>
  </soap:Body>
</soap:Envelope>';      

$results = simplexml_load_string($xml);
print_r($results);

但是,没有返回任何结果,它只显示:

SimpleXMLElement Object
(
)

我相信xml是正确的,我在在线验证器中进行了测试。谢谢。

1 个答案:

答案 0 :(得分:1)

试试这个(根据手册)

<?php
$string = <<<XML
<?xml version="1.0" encoding="utf-8"?>
<soap_Envelope xmlns_xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns_xsd="http://www.w3.org/2001/XMLSchema" xmlns_soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap_Body>
<data_GetResult xmlns="http://api.source.com/">
<data_GetData>
<value>123456</value>
<value>789000</value>
</data_GetData>
</data_GetResult>
</soap_Body>
</soap_Envelope>  
XML;

$xml = simplexml_load_string($string);

print_r($xml);
?>

似乎你名字中的:(它们似乎很奇怪,它们似乎是计划的一部分)导致问题,例如

</soap:Body>
</soap:Envelope>