Problem z wyciągnięciem danych z XML., Problem z wyciągnięciem danych z XML. |
Problem z wyciągnięciem danych z XML., Problem z wyciągnięciem danych z XML. |
3.02.2012, 14:48:27
Post
#1
|
|
Grupa: Zarejestrowani Postów: 88 Pomógł: 0 Dołączył: 16.03.2008 Ostrzeżenie: (0%) |
Mam taki mały problem, dla jednych pewnie mały, mam problem z wyciągnięciem danych a dokładniej mówiąc z podpięciem się:
Już wyjaśniam na przykładzie kodu, oto xml:
Jak widać drzewko tu jest różne, jak dlamnie nie poukładane. a to kod który napisałem by to ściągnąć tak wyglada
Moje pytanie jest takie jak widać w XML są <dzial tab="domy" typ="sprzedaz" /> zamknięte które nie mają danych I otwarte <dzial tab="domy" typ="wynajem"> ….. </dzial> jak można to wyciągnąć te działy tylko otwarte ? mam nadzieje że jakoś udało mi się opisać sens mojego problemu. Będę wdzięczny za wszelką pomoc jak i sugestie. |
|
|
3.02.2012, 14:57:09
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) |
Kod $path = $xml->xpath('//oferta/..'); Nie wiem czy to zadziała ale ja bym szedł w tą stronę http://www.w3schools.com/xpath/xpath_syntax.asp masz tam oferta i oferta_usun, jak uważnie przeczytasz co co jest w tym linku to zobaczysz jak łatwo można połączyć te 2 wątki. -------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
3.02.2012, 20:21:56
Post
#3
|
|
Grupa: Zarejestrowani Postów: 88 Pomógł: 0 Dołączył: 16.03.2008 Ostrzeżenie: (0%) |
Dzieki za pomoc niestety przy funkcji xpath() wyskakuje mi caly czas
Call to a member function xpath() on a non-object nie bardzo wiem jak to ugryźć Kod $path = $xml->xpath('//oferta/..'); Nie wiem czy to zadziała ale ja bym szedł w tą stronę http://www.w3schools.com/xpath/xpath_syntax.asp masz tam oferta i oferta_usun, jak uważnie przeczytasz co co jest w tym linku to zobaczysz jak łatwo można połączyć te 2 wątki. |
|
|
3.02.2012, 21:24:37
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) |
Do sprawdzenia, czy dany element posiada pod-elementy możesz użyć metody count():
Podobnie w przypadku parametrów. Żeby wyodrębnić parametry, w pętli, w której masz $oferty[] = $oferta musi się znaleźć kolejna pętla. |
|
|
3.02.2012, 22:32:45
Post
#5
|
|
Grupa: Zarejestrowani Postów: 88 Pomógł: 0 Dołączył: 16.03.2008 Ostrzeżenie: (0%) |
Dziekuje za pomoc i cierpliwosc, wykożystałem ten linijki kodu dostaje taka informacje: liczenie nie dziala
Call to undefined method SimpleXMLElement::count() Do sprawdzenia, czy dany element posiada pod-elementy możesz użyć metody count():
Podobnie w przypadku parametrów. Żeby wyodrębnić parametry, w pętli, w której masz $oferty[] = $oferta musi się znaleźć kolejna pętla. |
|
|
4.02.2012, 15:29:28
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) |
W sumie to linie 3 i 7 możesz bez obaw wyrzucić i też powinno działać. A jeśli chodzi o błąd, to zapewne masz starszą wersję PHP niż 5.3.0.
Aby pobrać parametry nadal jest potrzebna jeszcze jedna pętla w tej pętli, tak jak pisałem poprzednio i zliczanie możesz pominąć. |
|
|
5.02.2012, 15:57:07
Post
#7
|
|
Grupa: Zarejestrowani Postów: 88 Pomógł: 0 Dołączył: 16.03.2008 Ostrzeżenie: (0%) |
dziękuje małymi kroczkami do przodu mam inne pytanie
chciałbym zXML usunąć z opisu <linia>Warszawa Wilanów Dom do wynajmu </linia> <linia> </linia> wymyśliłem coś takiego :
tylko jak mam opisać to w $replacements i $patterns coś nie tak jest bo ogólnie usuwa mi wszytko z linijek <linia></linia>. W sumie to linie 3 i 7 możesz bez obaw wyrzucić i też powinno działać. A jeśli chodzi o błąd, to zapewne masz starszą wersję PHP niż 5.3.0. Aby pobrać parametry nadal jest potrzebna jeszcze jedna pętla w tej pętli, tak jak pisałem poprzednio i zliczanie możesz pominąć. |
|
|
5.02.2012, 17:08:06
Post
#8
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) |
Dzieki za pomoc niestety przy funkcji xpath() wyskakuje mi caly czas Call to a member function xpath() on a non-object http://www.php.net/manual/pl/simplexmlelement.xpath.php Pokombinuj z XPATH to nie będziesz miał śmietnika w kodzie w stylu count w pętli, bo Xpath zwróci Ci kolekcję obiektów z określonych w nim kryteriów. -------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
5.02.2012, 21:45:36
Post
#9
|
|
Grupa: Zarejestrowani Postów: 782 Pomógł: 153 Dołączył: 21.07.2010 Ostrzeżenie: (0%) |
Znając życie to pewnie też SimpleXML wykłada się gdzieś na niedobrze sformatowanym XMLu. Przynajmniej u mnie jest tak w 90% przypadków gdy xpath zwraca dla zapytania 0 mimo że te elementy tam są. Możesz kombinować z DOMDocument i loadHTML + późniejszą konwersją do SimpleXML. Niekiedy pomaga.
-------------------- Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]! |
|
|
Wersja Lo-Fi | Aktualny czas: 23.09.2024 - 09:49 |