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

SimpleXMLElement::asXML()メソッドDocsを使用して XML を取得する必要があります。そうしないと、空のルート ノードの値が返されるため、空の文字列が返されます。

だから、それはすべて元気でダンディです。

さらに、予防措置として、適切な戻り値のチェックを行います。

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

これが役に立ち、問題に光を当てることを願っています。

于 2012-12-25T16:18:18.940 に答える