简体   繁体   English

显示范围内的xml结果

[英]display xml results in ranges

I want to make a pagination like div. 我想像div一样分页。 Right now div is populated with xml, which displays 6 results. 现在,div用xml填充,显示6个结果。 I want on a click of a button to display next/previous 6 results. 我想要单击一个按钮以显示下一个/上一个6个结果。 I have no idea how to force xml return results like from matches[0] to matches[5] and on next click matches[6] to matches[11]. 我不知道如何强制xml返回结果,例如,从matchs [0]到matchs [5],以及在下次单击matchs [6]到matchs [11]。

XML in widget.php: widget.php中的XML:

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

if javascript variable that I pass to file widget.php is limit , want something like: 如果我传递给文件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 
    }
}

Not sure where to specify to display last six entries up to limit . 不知道在哪里可以指定显示最后六个条目高达limit Thanks in advance. 提前致谢。

Consider using xpath's node index denoted by square brackets [] . 考虑使用方括号[]表示的xpath的节点索引。 Below demonstrates with an example XML of Google Doodles: 下面以Google Doodles的XML示例为例进行演示:

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 Script 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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM