0

ここに私のPHPコードがあります

$xml= new SimpleXmlElement($rawxml);
    foreach($xml->children()->children() AS $key){
        $id = $xml->{"id"};
        $name = $xml->{"screen_name"};
        $profimg = $xml->{"profile_image_url"};
        echo "$id, $name, $profimg";
    }
$next = $xml->{"next_link"};
echo "index.php?".$next;

ここに私のxmlの構造があります

<?xml version="1.0" encoding="UTF-8"?>
    <users_list>
        <users type="array">
            <user>
              <id>44444</id>
              <screen_name>Some Name</screen_name>
              <profile_image_url>http://www.website.com/picture.jpg</profile_image_url>
            </user>
            <user>
              <id>555</id>
              <screen_name>Bob</screen_name>
              <profile_image_url>http://www.website.com/picture2.jpg</profile_image_url>
            </user>
            <user>
              <id>666666</id>
              <screen_name>Frank</screen_name>
              <profile_image_url>http://www.website.com/picture3.jpg</profile_image_url>
            </user>
        </users>
        <next_link>44444</next_link>
    </users_list>

フィールドの値を変数に割り当ててからエコーしようとしています。次に、一番下で nextlink をエコーし​​ます。

エラーは発生しませんが、最初のフィールドが何度も表示され、次のリンクが出力されません。

4

1 に答える 1

3

あなたは式で使用$keyしていますが、体の中で使用しています。foreach$xmlforeach

また、ルートウェイの子の子ではなく、XPath式を使用することをお勧めします。

foreach ($xml->xpath('/users_list/users/user') as $user) {
    $id = $user->id;
    $name = $user->screen_name;
    $profimg = $user->profile_image_url;
    echo "$id, $name, $profimg";
}
于 2009-11-08T12:20:26.267 に答える