0

echoPHP でこの SimpleXMLElement の OK 属性を使用するにはどうすればよいですか?

私はこれを何時間も理解しようとしてきましたが、解決できません。

SimpleXMLElement Object(
    [@attributes] => Array(
        [OK] => No
    )
    [NEWS] => SimpleXMLElement Object(
        [NEWS] => Blocked
    )
)
4

3 に答える 3

1

の出力でつまずいているかどうかはわかりません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;
于 2013-07-19T22:14:34.090 に答える
0
 $result = [PUT OBJECT HERE]->attributes()->OK;
  echo $result;
于 2013-07-19T20:48:17.590 に答える