Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: parser xml i wybieranie elementów
Forum PHP.pl > Forum > PHP
radziowu
Mam taki plik xml:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <offers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1">
  3. <group name="other">
  4.  
  5.  
  6. <o id="182693" url="http://www.stronkajakastam.pl/oferta/75450-pojemnik-ceramiczny-prom.html" price="39.5" avail="19" set="0" weight="2.3750" stock="19" currency="PLN" symbol="75450">
  7.  
  8. <cat><![CDATA[Blue China]]></cat>
  9. <name><![CDATA[Pojemnik Ceramiczny-Prom.]]></name>
  10. <size><![CDATA[38x21x15]]></size>
  11. <package><![CDATA[4]]></package>
  12. <imgs>
  13. <main url="http://www.stronkajakastam.pl/upl/app/products/182693-big.jpg"/>
  14. </imgs>
  15. </o>
  16.  
  17. <o id="182707" url="http://www.stronkajakastam.pl/oferta/75449-pojemnik-ceramiczny-prom.html" price="18.5" avail="22" set="0" weight="1.0000" stock="22" currency="PLN" symbol="75449">
  18.  
  19. <cat><![CDATA[Blue China]]></cat>
  20. <name><![CDATA[Pojemnik Ceramiczny -Prom.]]></name>
  21. <size><![CDATA[26x10.5x10.5]]></size>
  22. <package><![CDATA[6]]></package>
  23. <imgs>
  24. <main url="http://www.stronkajakastam.pl/upl/app/products/182707-big.jpg"/>
  25. </imgs>
  26. </o>
  27.  
  28. <o id="182712" url="http://www.stronkajakastam.pl/oferta/75448-szkatulka-ceramiczna-prom.html" price="18.5" avail="30" set="0" weight="1.0000" stock="30" currency="PLN" symbol="75448">
  29.  
  30. <cat><![CDATA[Blue China]]></cat>
  31. <name><![CDATA[Szkatułka Ceramiczna-Prom.]]></name>
  32. <size><![CDATA[11x21x11]]></size>
  33. <package><![CDATA[12]]></package>
  34. <imgs>
  35. <main url="http://www.stronkajakastam.pl/upl/app/products/182712-big.jpg"/>
  36. </imgs>
  37. </o>
  38. </group>
  39. </offers>
  40.  


oraz kod php do pobierania pliku:

  1. <?php
  2.  
  3.  
  4. $objDOM = new DOMDocument();
  5. //pobieramy kanal rss i tworzymy liste zawierajaca elementy ITEM
  6. $objDOM->load("produkty_test.xml");
  7. $items = $objDOM->getElementsByTagName("o");
  8.  
  9. foreach( $items as $item ) {
  10. //w petli wyciagamy wartosci z poszczegolnych znacznikow
  11. $name = $item->getElementsByTagName("name")->item(0)->nodeValue;
  12. $cat = $item->getElementsByTagName("cat")->item(0)->nodeValue;
  13. $size = $item->getElementsByTagName("size")->item(0)->nodeValue;
  14. $package = $item->getElementsByTagName("package")->item(0)->nodeValue;
  15. $imgs = $item->getElementsByTagName("imgs")->item(0)->nodeValue;
  16. }
  17.  
  18. ?>


Wszystko ok, działa i uzyskuje tablice z danymi ale chciałbym jeszce wybrać takie dane jak url obrazka z fragmentu:

  1. <imgs>
  2. <main url="http://www.stronkajakastam.pl/upl/app/products/182707-big.jpg"/>
  3. </imgs>


oraz takie dane " stock="22" currency="PLN" symbol="75449" z fragmentu:

  1. <o id="182707" url="http://www.stronkajakastam.pl/oferta/75449-pojemnik-ceramiczny-prom.html" price="18.5" avail="22" set="0" weight="1.0000" stock="22" currency="PLN" symbol="75449">



Prosze o pomoc
timon27
  1. $stan = $item->getAttribute('stock');



  1. $url= $item->getElementsByTagName("main")->item(0)->getAttribute('url');
radziowu
Genialnie! Ogromne dzieki Timon27 exclamation.gif! O to chodziło
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.