在范围中显示xml结果


display xml results in ranges

我想做一个类似div的分页。现在div用xml填充,它显示6个结果。我想点击一个按钮来显示下一个/上一个6个结果。我不知道如何强制xml返回结果,比如从matches[0]到matches[5],再单击matches[6]到matches[11]。

widget.php中的XML:

foreach ($xml->team->last_matches->match as $match) {
   //some php and html stuff 
}

如果我传递给文件widget.php的javascript变量是limit,则需要类似的内容:

for ($x = 0; $x < $_GET['limit']; x++)
   foreach ($xml->team->last_matches->match[x] as $match) {
       //some php and html stuff 
    }
}

不确定指定在哪里显示limit之前的最后六个条目。提前谢谢。

考虑使用由方括号[]表示的xpath的节点索引。下面用谷歌涂鸦的XML示例演示:

XML

<root>
    <GoogleDoodles>
        <ID>1758</ID>
        <DoodleDate>2015-07-01</DoodleDate>
        <Doodle>Canada Day 2015</Doodle>
    </GoogleDoodles>
    <GoogleDoodles>
        <ID>1759</ID>
        <DoodleDate>2015-07-04</DoodleDate>
        <Doodle>Fourth of July 2015</Doodle>
    </GoogleDoodles>
    <GoogleDoodles>
        <ID>1760</ID>
        <DoodleDate>2015-02-15</DoodleDate>
        <Doodle>50th Anniversary of the Canadian Flag</Doodle>
    </GoogleDoodles>
    <GoogleDoodles>
        <ID>1761</ID>
        <DoodleDate>2015-02-15</DoodleDate>
        <Doodle>Cricket World Cup 2015 - India vs. Pakistan</Doodle>
    </GoogleDoodles>
    <GoogleDoodles>
        <ID>1762</ID>
        <DoodleDate>2015-02-17</DoodleDate>
        <Doodle>Carnival 2015</Doodle>
    </GoogleDoodles>
    <GoogleDoodles>
        <ID>1763</ID>
        <DoodleDate>2015-02-16</DoodleDate>
        <Doodle>Rosenmontag 2015</Doodle>
    </GoogleDoodles>
    <GoogleDoodles>
        <ID>1764</ID>
        <DoodleDate>2015-02-18</DoodleDate>
        <Doodle>Alessandro Volta's 270th Birthday</Doodle>
    </GoogleDoodles>
    <GoogleDoodles>
        <ID>1765</ID>
        <DoodleDate>2015-02-24</DoodleDate>
        <Doodle>Rosalia de Castro's 178th Birthday</Doodle>
    </GoogleDoodles>
    <GoogleDoodles>
        <ID>1766</ID>
        <DoodleDate>2015-02-19</DoodleDate>
        <Doodle>Lunar New Year 2015 (Vietnam)</Doodle>
    </GoogleDoodles>
    <GoogleDoodles>
        <ID>1767</ID>
        <DoodleDate>2015-02-26</DoodleDate>
        <Doodle>Jose Mauro de Vasconcelos' 95th Birthday</Doodle>
    </GoogleDoodles>
    <GoogleDoodles>
        <ID>1768</ID>
        <DoodleDate>2015-02-19</DoodleDate>
        <Doodle>Lunar New Year 2015</Doodle>
    </GoogleDoodles>
</root> 

PHP编写脚本

$xml = simplexml_load_file('path/to/xml/file.xml');
# $xml = simplexml_load_string($xmlstring);
$limit = 5;
for($j=0; $j <= $limit; $j++) {
    foreach ($xml->xpath("//GoogleDoodles[".$j."]/Doodle") as $d) {
        echo $d->saveXML()."'n";
    }
}    
// <Doodle>Canada Day 2015</Doodle>
// <Doodle>Fourth of July 2015</Doodle>
// <Doodle>50th Anniversary of the Canadian Flag</Doodle>
// <Doodle>Cricket World Cup 2015 - India vs. Pakistan</Doodle>
// <Doodle>Carnival 2015</Doodle>