显示范围

时间:2016-05-03 11:45:13

标签: php xml

我想像div那样做一个分页。现在div用xml填充,显示6个结果。我想点击一个按钮来显示下一个/前一个6个结果。我不知道如何强制xml返回结果,如匹配[0]匹配[5]和下次点击匹配[6]匹配[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。提前谢谢。

1 个答案:

答案 0 :(得分:0)

考虑使用方括号[]表示的xpath节点索引。下面演示了Google Doodles的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>