2010-06-28 4 views
0

J'ai cherché haut et bas pour un moyen de paginer un fichier XML et je commence à penser que ce ne serait peut-être pas possible. Quelqu'un pourrait-il faire la lumière sur ce point, est-ce possible? peut paginer des résultats de base de données aucun problème mais ne peut pas trouver un moyen de le faire ...comment paginer un fichier XML

Vu quelques exemples mais ils ont utilisé un champ d'identification qui était dans le fichier XML, et comme je ne peux pas éditer le fichier moi-même, dois juste travailler avec ce que j'ai ...

quelqu'un Hope peut aider ...

+0

Paginer un fichier XML? Comment voulez-vous dire paginer? Dans un navigateur? Diviser en fichiers? Impression? – Oded

+0

Désolé aurait dû en dire plus, je veux paginer une page XML en utilisant PHP, aurait environ 200 articles (rien de massif) – David

+0

Le langage de programmation n'a pas d'importance. Définir "paginer". – Philipp

Répondre

3

XML n'a pas de concept de pages, parce que ce n'est pas une technologie d'interface utilisateur.

Vous pouvez certainement. Vous devez analyser le code XML dans un objet DOM, choisir une taille de page, puis parcourir le DOM en morceaux de la taille d'une page.

Vous ne dites pas quelle langue vous utilisez ou si vous voulez le côté serveur ou client. Mais c'est certainement possible.

+0

PHP serait la langue de choix et le côté serveur serait le meilleur je pense .. – David

0

Vous n'avez pas mentionné comment vous produisez votre XML en premier lieu, mais vous voudrez peut-être regarder par exemple. XSL-FO, qui prend en charge la pagination.

0
<?php 
if(!$xml=simplexml_load_file("your.xml")) { 

trigger_error('Error reading XML file',E_USER_ERROR);} 


$ps = 16; // page size 

$fr = $_GET["fr"]; 

if ($fr < 1) { 

    $fr = 1; 

} 

$c = 0; 

foreach($xml->product as $product) { // ->entry 

    $c++; 

    if ($c >= $fr && $c < $fr + $ps) { 
     echo $c. '<b>Find out more about:<br><a href=\'http://www.shop- 
diamondtdesign.com/p/product/'.$product->SUPPLIERITEMGUID.'\'>'.$product- 
>ITEMNAME.'</a></b></br>'."\n"; 
     echo '<img 
src="http://www.distributorcentral.com/resources/productimage.cfm? 
Prod='.$product->SUPPLIERITEMGUID.'&size=medium" alt="'.$product->ITEMNAME.'" /><br>'; 
     echo "Action - " .($product->ITEMACTION)."<br>"; 
     echo "ADDED TO SEARCH DATE - ".($product->ADDEDTOSEARCHDATE)."<br> 
</div>"; 

    } 
} 
    echo '<div class="w3-row ">'; 
    echo '<div class="w3-button w3-theme w3-round-large">'; 
if ($fr > 1) { 
    echo " &nbsp; &nbsp; <b><a href='index.php?fr=" . ($fr - $ps) . "'>prev</a>"; 

} else { 

    echo " &nbsp; &nbsp; <b><strike>prev</strike>"; 
} 

// TODO: check end of file... 

    echo " &nbsp; &nbsp; <a href='index.php?fr=" . ($fr + $ps) . "'>next</a></b>"; 
echo "</div></div>";  
?> 
<a href="paging-3.php" button class="w3-button w3-block w3-theme-l4 w3-hover-w3-theme-l2 w3-border-black">More Newest Additions</a>