echo
PHP でこの SimpleXMLElement の OK 属性を使用するにはどうすればよいですか?
私はこれを何時間も理解しようとしてきましたが、解決できません。
SimpleXMLElement Object(
[@attributes] => Array(
[OK] => No
)
[NEWS] => SimpleXMLElement Object(
[NEWS] => Blocked
)
)
の出力でつまずいているかどうかはわかりませんprint_r
が、その例の基になる XML は のようなもの<foo OK="No"><NEWS>Blocked</NEWS></foo>
になるため、OK は通常の XML 属性です。
マニュアルの基本的な使用例が示すように、SimpleXML で属性にアクセスする最も簡単な方法は を使用すること['attribute_name']
です。したがって、あなたの場合、次のようになります。
echo $node['OK'];
すべてのアクセサと同様に、文字列ではなく別の SimpleXML オブジェクトを返すことに注意してください。そのため、コードの他の部分に渡す場合は、(string)
他のコードのつまずきを避けるために、次の構文で文字列にキャストする必要があります。
$ok_value = (string)$node['OK'];
他の人が指摘しているようattributes()
に、ノードのすべての属性をループしたり、特定の XML 名前空間にある属性にアクセスしたりできるメソッドもあります。これらの 2 行は、上記の 2 行と同等です。
echo $node->attributes()->OK;
$ok_value = (string)$node->attributes()->OK;
$result = [PUT OBJECT HERE]->attributes()->OK;
echo $result;