在页面刷新时从xml feed解析下一个值

时间:2013-05-14 14:21:02

标签: php xml

我有一个xml feed,我可以使用simplexml_load_file访问它,并为每次访问使用其中的所有记录。我还可以使用以下方法访问单个节点:

$xml->property[0]->propertyID;

我想要做的是依次单独显示每个记录,即从[0]移动到[1]等依次刷新页面,但不知道如何去做。< / p>

我只是一个业余爱好者所以如果这是一个新问题,请原谅我

1 个答案:

答案 0 :(得分:1)

你需要在某个地方引入一些状态,这样你才能记住你必须去的地方。

您可以拥有浏览器count up each time the page is refreshed using a cookie,也可以在服务器端记住这一点,方法是将当前节点号存储在某个位置 - 数据库,文件或URL中。

可能最简单的做法是将下一个节点号添加到URL的末尾,因此当重新加载该页面时,您将在服务器端看到该参数并可以加载该节点。像这样:

$node = 0;
if (empty($_GET['nextnode']))
{
    header('Location: example.php?nextnode=' . node + 1);
} else {
    $node = $_GET['nextnode'];
}
...
$xml->property[$node]->propertyID;

刷新页面时,它会照常向您的PHP脚本发出请求,但在请求的URL末尾会有这样的内容:

?nextnode=23

PHP会将这些URL参数存储在$_GET数组中,然后您可以在脚本中查询。查看documentation on header以获取更多信息。

另一种类似的技术是在PHP中创建页面时将值存储在隐藏的表单字段中:

echo '<form>
    <input type="hidden" value="'.$node + 1.'" />
    <input type="submit" value="Next Node" />
</form>';

这将在页面上创建一个“下一个节点”按钮,当有人点击它时,它将作为表单提交发回给您。然后,您可以查找下一个节点并重新显示该页面。有关dealing with forms in PHP的详细信息,请参阅此处。