Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SimpleXML] Odczyt atrybutu
Forum PHP.pl > Forum > PHP
panbobek44
Cześć,

mam plik XML z którego nie potrafię odczytać atrybutu price. Kategorię, nazwę, opis i linki do zdjęć pobierają się poprawnie. Proszę o pomoc.

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <offers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1">
  3. <o id="33" price="68.38" avail="1" set="0" weight="0.3" basket="1" stock="1407">
  4. <cat><![CDATA[Baterie]]></cat>
  5. <name><![CDATA[Bateria 10.8V 6 cell]]></name>
  6. <desc><![CDATA[Opis: Pojemność: 4400 mAh]]></desc>
  7. <imgs>
  8. <main url="https://xxx.pl/20422/test.jpg"/>
  9. <i url="https://xxx.pl/20423/test.jpg"/>
  10. <i url="https://xxx.pl/20424/test.jpg"/>
  11. </imgs>
  12. <attrs>
  13. <a name="Producent"><![CDATA[XXX]]></a>
  14. <a name="Kod_producenta"><![CDATA[XX33]]></a>
  15. <a name="EAN"><![CDATA[353453]]></a>
  16. </attrs>
  17. </o>
  18. </offers>


  1. <?php
  2.  
  3. $xml = simplexml_load_file('get.xml') or die("error!!");
  4. $i = 0;
  5. foreach($xml->children() as $temp) {
  6. $produkt[$i]["cat"] = $temp->cat;
  7.  
  8. $produkt[$i]["name"] = $temp->name;
  9.  
  10. $produkt[$i]["desc"] = $temp->desc;
  11.  
  12. $produkt[$i]["imgs"] = $temp->imgs->main['url'];
  13.  
  14. $produkt[$i]["price"] = $temp->o['price'];;
  15.  
  16. $i++;
  17. }
  18.  
  19.  
  20. $i = 1;
  21.  
  22. echo $produkt[$i]["cat"];
  23. echo "<br />";
  24.  
  25. echo $produkt[$i]["name"];
  26. echo "<br />";
  27.  
  28. echo $produkt[$i]["desc"];
  29. echo "<br />";
  30.  
  31. echo $produkt[$i]["imgs"];
  32. echo "<br />";
  33.  
  34. echo "cena: ", $produkt[$i]["price"];
  35. echo "<br />";
  36. ?>
Pyton_000
(string)$temp->cat

itd.
panbobek44
Czy w ten sposób odczytam ten atrybut price="68.38"?
Pyton_000
Nie, musisz pobrać najpierw atrybuty:

http://php.net/manual/en/simplexmlelement.attributes.php
panbobek44
Dzięki za wskazówkę. Wszystko działa jak należy.

  1. <?php
  2. $xml = simplexml_load_file('get.xml') or die("error!!");
  3. $i = 0;
  4. foreach($xml->children() as $temp) {
  5. $produkt[$i]["cat"] = $temp->cat;
  6.  
  7. $produkt[$i]["name"] = $temp->name;
  8.  
  9. $produkt[$i]["desc"] = $temp->desc;
  10.  
  11. $produkt[$i]["imgs"] = $temp->imgs->main['url'];
  12.  
  13. $produkt[$i]["price"] = $temp->o['price'];;
  14.  
  15. foreach($xml->o[$i]->attributes() as $a => $b) {
  16. $produkt[$i][$a] = $b;
  17. }
  18.  
  19. $i++;
  20. }
  21.  
  22.  
  23. $i = rand(1, 990);
  24.  
  25. echo $produkt[$i]["cat"];
  26. echo "<br /><br />";
  27.  
  28. echo $produkt[$i]["name"];
  29. echo "<br /><br />";
  30.  
  31. echo $produkt[$i]["desc"];
  32. echo "<br /><br />";
  33.  
  34. echo $produkt[$i]["imgs"];
  35. echo "<br /><br />";
  36.  
  37. echo "cena: ", $produkt[$i]["price"];
  38. echo "<br /><br />";
  39.  
  40. echo "adres: ", $produkt[$i]["url"];
  41. echo "<br /><br />";
  42. ?>
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.