simpleXMLElement的问题

时间:2009-11-08 12:17:52

标签: php xml simplexml

这是我的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>

我试图将字段的值分配给变量,然后回显它们。然后在底部回显下一个链接。

我没有得到任何错误,但它只是反复显示第一个字段,并且不输出下一个链接。

1 个答案:

答案 0 :(得分:3)

您在$key表达式中使用foreach,但在$xml正文中使用foreach

我还希望使用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";
}