1

次のオブジェクトがあります。

object(SimpleXMLElement)#337 (1) { [0]=> string(4) "1001" }

しかし、[0] を使用したり、 foreach($value as $obj=>$objvalue) を使用しなくてもアクセスできないようです

私は何を間違っていますか?

4

3 に答える 3

1

SimpleXMLElementはTraversableを実装しているため、これを使用foreachしてループできます。

于 2012-07-12T08:41:15.783 に答える
0

使ってみて

$objectarray = get_object_vars(object(SimpleXMLElement));
于 2012-07-12T08:41:55.380 に答える
0

SimpleXMLElementマニュアルを調べると、次の例が見つかりました (XML ファイルの例はリンクのページの上部にあります)。

$movies = new SimpleXMLElement($xmlstr);

/* For each <character> node, we echo a separate <name>. */
foreach ($movies->movie->characters->character as $character) {
   echo $character->name, ' played by ', $character->actor, PHP_EOL;
}

そして、XML オブジェクトを配列に変換するこの関数を見つけました。おそらく、その方が使いやすいでしょうか?:

    function toArray($xml) { //$xml is of type SimpleXMLElement 
        $array = json_decode(json_encode($xml), TRUE);

        foreach ( array_slice($array, 0) as $key => $value ) {
            if ( empty($value) ) $array[$key] = NULL;
            elseif ( is_array($value) ) $array[$key] = toArray($value);
        }

        return $array;
    }
于 2012-07-12T08:45:04.810 に答える