Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [XML][PHP]SimpleXML - jak użyć warunku w parserze?
Forum PHP.pl > Forum > Przedszkole
leonq1
Witam,
chciałbym się poradzić kogoś z doświadczeniem :-) w parserowaniu.
Napisałem coś takiego:

CODE
<?php
$kurscee = simplexml_load_file('http://www.gpw.pl/wyniki/a45_u__8c/n_INVGLDFIZ_full_data.html');
$altcee = $kurscee->kurs_odniesienia;
$cee = $kurscee->xpath('/*/kurs[last()]');
if (!isset ($cee)) {
echo $altcee;
}
else {
echo $cee->pion;
}
}
?>


Niestety warunek nie działa prawidłowo, a jest on niezbędny gdyż nie zawsze w xml-u jest zawarta gałąź <kurs> i wtedy trzeba wyświetlić <kurs_odniesienia>.

XML wygląda tak:

CODE
<dane>
<papier>INVGLDFIZ</papier>
<data>2011-07-25</data>
<min>2920.00</min>
<max>2950.00</max>
<kurs_odniesienia>2910.00</kurs_odniesienia>
<start>09:00:00</start>

<stop>17:30:00</stop>
<kurs>
<pion>2930.00</pion>
<poziom>09:01:17</poziom>
<poziom_data>2011-07-25</poziom_data>
<wolumen>1</wolumen>

</kurs>
<kurs>
<pion>2930.00</pion>
<poziom>09:21:50</poziom>
<poziom_data>2011-07-25</poziom_data>
<wolumen>1</wolumen>
</kurs>

<kurs>
<pion>2930.00</pion>
<poziom>09:32:07</poziom>
<poziom_data>2011-07-25</poziom_data>
<wolumen>2</wolumen>
</kurs>
<kurs>

<pion>2925.00</pion>
<poziom>09:49:25</poziom>
<poziom_data>2011-07-25</poziom_data>
<wolumen>2</wolumen>
</kurs>
</dane>


Czy ktoś zechciałby pomóc?
Strona która to obsługuje stoi na apache-u i jest to drupal.
skowron-line
http://br2.php.net/manual/pl/simplexmlelement.xpath.php
Cytat
Returns an array of SimpleXMLElement objects or FALSE in case of an error.
leonq1
A czy mogłbym prosić troszkę jaśniej - jak dla początkującego? ;-)
-czapizzle-
  1. <?php
  2. $url = 'http://www.gpw.pl/wyniki/a45_u__8c/n_INVGLDFIZ_full_data.html';
  3.  
  4. if($xml = @simplexml_load_file($url)){
  5. echo "<h1>". $xml->papier."</h1>";
  6. echo $xml->data;
  7. echo '<br/>';
  8. $ko = number_format($xml->kurs_odniesienia,2,'.','');
  9. $pion = number_format($xml->kurs[count($xml->kurs)-1]->pion,2,'.','');
  10. echo 'Kurs odniesienia '.$ko;
  11. echo '<br/>';
  12. echo 'Wartość ' . $pion;
  13. echo '<br/>';
  14. $pr = ($pion-$ko);
  15. echo '<br/>';
  16. $wartosc = number_format($pr /$ko * 100,2,'.',' ');
  17. if($wartosc > 0) {$class='green'; $arrow = ' &uarr;'; $plus = '+';}
  18. else if($wartosc < 0) {$class='red'; $arrow = ' &darr;';}
  19. else {$class='gray';}
  20. echo '<span class="'.$class.'">'.$plus.$wartosc .'%'.$arrow.'</span>';
  21. }else{
  22. echo 'dane niedostępne';
  23. }
  24. ?>
  25.  
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.