simplexml_load_string返回空节点

时间:2012-12-25 16:17:23

标签: php xml simplexml

  

可能重复:
  PHP get values from SimpleXMLElement array

我使用simplexml_load_string()来解析xml字符串。它正确读取输入,但不返回任何数据只有空白节点。

我的xml数据是:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<leads>
    <auth>
        <username>user</username>
        <password>user</password>
    </auth>
</leads>

功能是:

$xmlObj = simplexml_load_string($xml);

    if ($xmlObj) {
        echo "Failed loading XML\n";
        foreach(libxml_get_errors() as $error) {
            echo "\t", $error->message;
        }
    } 
    else{
        print_r($xmlObj);
     }

当我尝试打印结果时,我得到一个空白的节点,如

<auth>
    </username>
    </password>
</auth>

2 个答案:

答案 0 :(得分:2)

我得到了解决方案

$username = (string) $xmlObj->auth->username;

我只是把“(字符串)”

答案 1 :(得分:0)

您需要使用SimpleXMLElement::asXML() methodDocs来获取XML,否则它将返回空节点的根节点的值,因此为空字符串。

所以这一切都很好,花花公子。

此外,作为预防措施,请进行正确的退货值检查:

$obj = simplexml_load_string($xml)
if ($obj === FALSE) {
    throw new Exception('Failed to load XML string.');
}

我希望这有助于解决您的问题。