![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 18.06.2015 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam problem. Potrzebuję wyciągnąć pewne wartości z pliku xml, a dokładnie z linku http://www.malopolska.pl/_layouts/WrotaMal...ata.aspx?data=2 Plik jest cały czas aktualizowany i zmieniają się dane pomiarowe oraz godzina i wpłynięcia. Potrzebuje napisać skrypt,który wyciągnie tylko najnowszą wartość parametru PM10 ze stacji Kraków ul. Bujaka(akualna). Odrazu chciałbym zaznaczyć że jestem nowicjuszem jeżeli chodzi o pisanie w php. Potrzebuje tylko wskazówek Napisałem coś takiego
Jednak numerki Item się zmieniają i za każdym razem otrzymuję inny Parametr. Proszę o jakąś podpowiedź czym to ugryźć.. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 6 Dołączył: 30.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Są dwa sposoby. Pierwszym jest iteracja przez całość aż do napotkania pierwszego takiego wyniku, który posiada wartości:
Ten wynik łapiemy, przerywamy pętlę i wypisujemy. Twój kod na "mój" sposób:
Drugim sposobem jest wykorzystanie xpath - wtedy jednak też musimy zrobić pętlę. To rozwiązanie wydaje mi się nieco szybsze (nie iterujemy przez całego XML-a, tylko przez to, co daje nam xpath, przez co foreach ma "mniej roboty"):
Wszystko będzie śmigać prawidłowo, dopóki wyniki w XML-u będą posortowane od najnowszego do najstarszego. Jeśli to też będzie się zmieniać, to trzeba będzie dopisać fragment kodu, w którym będziesz eliminować starsze wyniki. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
Hmm… Skoro już się bawimy XPath to czemu nie pobawić się porządnie?
![]() Skoro już mamy miasto to potrzebujemy jeszcze sprawdzić czy ten sam rodzic nie zawiera odpowiedniego Pollutant, więc można zastosować following-sibling. Dodatkowo można też kazać XPath zwrócić tylko 1. wynik (bo tam będzie najnowsze info). Tym samym uzyskujemy takie ładne zapytanie: Kod (//Current/Item/City[.="Kraków, ul. Bujaka"]/following-sibling::Pollutant[.="PM10"]/parent::*)[1] Zatem całość będzie wyglądać tak:
-------------------- ★Mój blog || Okiem krytyka★
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 18.06.2015 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Dziękuję za odpowiedzi. Jestem bardzo wdzięczny. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 17.06.2025 - 20:23 |