Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z wyciągnięciem danych z XML., Problem z wyciągnięciem danych z XML.
Ardo
post
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:

  1. <lista_ofert>
  2. <dzial tab="domy" typ="sprzedaz" />
  3. <dzial tab="domy" typ="wynajem">
  4. <oferta>
  5. <id>109028</id>
  6. <cena waluta="EUR">2500,0000</cena>
  7. <param nazwa="cena1m" typ="real">37,26</param>
  8. <param nazwa="wojewodztwo" typ="text">Mazowieckie</param>
  9. <param nazwa="miasto" typ="text">Warszawa</param>
  10. ........
  11. <param nazwa="miasto" typ="text">Warszawa</param>
  12. </dzial>
  13. <dzial tab="dzialki" typ="sprzedaz">
  14. <oferta_usun>
  15. <id>137695</id>
  16. </oferta_usun>
  17. </dzial>
  18. <dzial tab="dzialki" typ="wynajem" />
  19. <dzial tab="lokale" typ="sprzedaz" />
  20. <dzial tab="lokale" typ="wynajem">
  21. <oferta>
  22. <id>109028L</id>
  23. <cena waluta="EUR">2500,0000</cena>
  24. <param nazwa="cena1m" typ="real">37,26</param>
  25. <param nazwa="wojewodztwo" typ="text">Mazowieckie</param>
  26. </oferta>
  27. </dzial>
  28. ....


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
  1. $product = simplexml_load_file ($hurtownia[0]);
  2.  
  3. foreach ($product->lista_ofert->dzial -> oferta as $oferta )
  4. {
  5.  
  6. $thisDom = array (
  7. 'id' => $oferta->id,
  8. 'cena' => $oferta->cena
  9. ...
  10. );
  11.  
  12. $request[] = $thisDom;
  13.  
  14. }




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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mortus
post
Post #2





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ąć.
Go to the top of the page
+Quote Post
Ardo
post
Post #3





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 :


  1. $patterns = array(
  2. 0 => '#\<linia\>#',
  3. 1 => '#\<\/linia\>#'
  4. );
  5.  
  6. $replacements = array(
  7. 0 => '',
  8. 1 => ''
  9. );
  10. $zip = $hurtownia[0];
  11. $xml = file_get_contents($zip);
  12. $xml = preg_replace($patterns, $replacements, $xml);
  13. $product = simplexml_load_string($xml);
  14.  


tylko jak mam opisać to w $replacements i $patterns coś nie tak jest bo ogólnie usuwa mi wszytko z linijek <linia></linia>.




Cytat(mortus @ 4.02.2012, 15:29:28 ) *
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ąć.

Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 11:09