Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Listowanie a pierwsza wartość
Forum PHP.pl > Forum > PHP
winiar789
Cześć i czołem,

Mam XML a w nim:

  1.  
  2. <first_image>
  3. <img_first cover="0">http://www.xxx.pl/1732-thickbox_default/img-1676.jpg</img_first>
  4. <img_first cover="1">http://www.xxx.pl/1732-thickbox_default/img-1676.jpg</img_first>
  5. </first_image>
  6.  


Teraz chciałbym aby cover 1 był jako pierwszy w listowaniu - no wiec mam :

  1.  
  2. $zdjecia = "";
  3. foreach($v->first_image->img_first as $kk => $vv) {
  4.  
  5. if($vv->attributes()->cover==1) $zdjecia .= "$vv";
  6. else $zdjecia .= "$vv";
  7.  
  8. }
  9.  


i jak zawsze z tym problem - nie jest tak jak powinno być
nospor
if i else robia dokladnie to samo... rownie dobrze mozesz je wywalic...

Jak chcesz jeden z tych wyswietlic najpierw to przelec raz przez wszystkie i wyswietl ten WLASCIWY a potem przelec drugi raz i wyswietl pozostale
trueblue
  1. header('Content-Type:text/plain');
  2.  
  3. $xml = '<?xml version="1.0" encoding="utf-8"?>
  4. <first_image>
  5. <img_first cover="0">http://www.xxx.pl/1732-thickbox_default/img-1676_0.jpg</img_first>
  6. <img_first cover="1">http://www.xxx.pl/1732-thickbox_default/img-1676_1.jpg</img_first>
  7. </first_image>
  8.  
  9. <first_image>
  10. <img_first cover="1">http://www.xxx.pl/1732-thickbox_default/img-1677_1.jpg</img_first>
  11. <img_first cover="0">http://www.xxx.pl/1732-thickbox_default/img-1677_0.jpg</img_first>
  12. </first_image>
  13. ';
  14.  
  15.  
  16. $dom = new DOMDocument();
  17. libxml_use_internal_errors(true);
  18. $dom->loadHTML($xml);
  19. libxml_clear_errors();
  20.  
  21. $xpath = new DOMXPath($dom);
  22. $nodes = $xpath->query('//first_image/img_first[@cover="1"]');
  23.  
  24. /* ta petla tylko pod warunkiem, ze zawsze istnieje cover=0 i zawsze jest przed
  25. foreach($nodes as $node){
  26. echo $node->nodeValue.PHP_EOL;
  27. echo $node->previousSibling->nodeValue.PHP_EOL;
  28. }
  29. */
  30.  
  31. foreach($nodes as $node){
  32. echo $node->nodeValue.PHP_EOL;
  33. if($node->previousSibling){
  34. echo $node->previousSibling->nodeValue.PHP_EOL;
  35. }
  36. elseif($node->nextSibling){
  37. echo $node->nextSibling->nodeValue.PHP_EOL;
  38. }
  39. }


Polecam: http://kawalekkodu.pl/post/the-tag-is-out-...domxpath-s01e01
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.