0

可能重复:
PHP 从 SimpleXMLElement 数组中获取值

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>
4

2 回答 2

2

我得到了解决方案

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

我只是把“(字符串)”

于 2012-12-26T11:15:28.357 回答
0

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

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

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

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

我希望这会有所帮助,并对您的问题有所了解。

于 2012-12-25T16:18:18.940 回答