3

重複の可能性:
SimpleXMLから@attributeにアクセスする

次の形式でxmlを介してエラーを返すサードパーティのAPIをいくつか使用しています。

<xml>
<status>0</status>
<error code="111">Error message text goes here.</error>
</xml>

PHPで使用simplexml_load_stringすると、ステータス0とエラーメッセージテキストを簡単に取得できますが、code="111"から値を取得する方法が見つかりません<error code="111">。SimpleXMLによって削除されたようです。

<?php
    $bytesRead = file_get_contents('http://api.....');
    $xml = simplexml_load_string($bytesRead);

    echo '<pre>'; print_r($xml); echo '</pre>';
?>

出力

SimpleXMLElement Object
(
    [status] => 0
    [error] => Error message text goes here.
)

私は何かが足りないのですか?この値を取得する方法はありますか、または誰かがこれを取得するための別の方法を提案できますか?

4

2 に答える 2

11

print_rそこにありますが、出力には表示されません。基本的な例のページのように、5の属性の使用

これまでは、要素名とその値を読み取る作業についてのみ説明してきました。SimpleXMLは要素属性にもアクセスできます。配列の要素と同じように、要素の属性にアクセスします。

例:

$x = '<xml>
<status>0</status>
<error code="111">Error message text goes here.</error>
</xml>';

$attributeObject = simplexml_load_string($x)->error['code'];

print_r($attributeObject);
print_r((string) $attributeObject);

プログラム出力(デモ

SimpleXMLElement Object
(
    [0] => 111
)
111
于 2013-01-16T13:38:10.083 に答える
3

このように使用してくださいecho$xml-> error ['code'];

例: http ://codepad.org/uOqeBNz9

于 2013-01-16T13:41:24.950 に答える