Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [XML][PHP] pobieranie rekordów z XML'a
Forum PHP.pl > Forum > Przedszkole
job
Witam,

Długi czas juz siedze i męczę się nad jednym problemem, mianowicie mam plik XML z przykladowymi danymi, chciałbym teraz poprzez php pobrać z niego poszczególne rekordy. Poniżej załączam XML'a

  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <!DOCTYPE pasaz:Envelope SYSTEM "loadOffers.dtd">
  4. <pasaz:Envelope xmlns:pasaz="http://schemas.xmlsoap.org/soap/envelope/">
  5. <pasaz:Body>
  6. <loadOffers xmlns="urn:ExportB2B">
  7.  
  8. <offers>
  9.  
  10. <offer>
  11. <id>35</id>
  12. <name><![CDATA[Goodyear Ultra Grip 7+ 195/65/R15 91 T]]></name>
  13. <price>289,10</price>
  14. <url><![CDATA[http://www.sklep.pl/id=36]]></url>
  15. <categoryId><![CDATA[Motoryzacja/Opony/Opony osobowe/Opony osobowe zimowe]]></categoryId>
  16. <description><![CDATA[Gęste ożebrowanie typu Waffle Blades, zapewniające najlepsze osiągi trakcyjne w warunkach zimowych oraz najnowocześniejszy system trójwymiarowego blokowania wzajemnych pozycji klocków bieżnika umożliwiający sprawną reakcję na mokrych i suchych nawierzchniach, ]]></description>
  17. <image><![CDATA[http://www.sklep.tel.pl/jpg=36]]></image>
  18.  
  19.  
  20. <attributes>
  21. <attribute>
  22.  
  23. <name><![CDATA[Producent]]></name>
  24. <value><![CDATA[Goodyear]]></value>
  25. </attribute>
  26.  
  27. <attribute>
  28. <name><![CDATA[SAP]]></name>
  29. <value><![CDATA[515630]]></value>
  30. </attribute>
  31.  
  32. <attribute>
  33. <name><![CDATA[EAN]]></name>
  34. <value><![CDATA[5911234567890]]></value>
  35. </attribute>
  36.  
  37. <attribute>
  38. <name><![CDATA[Model]]></name>
  39. <value><![CDATA[Ultra Grip 7+]]></value>
  40. </attribute>
  41.  
  42. <attribute>
  43. <name><![CDATA[Szerokośd opony]]></name>
  44. <value><![CDATA[195]]></value>
  45. </attribute>
  46.  
  47. <attribute>
  48. <name><![CDATA[Profil]]></name>
  49. <value><![CDATA[65]]></value>
  50. </attribute>
  51.  
  52. <attribute>
  53. <name><![CDATA[Średnica koła]]></name>
  54. <value><![CDATA[R15]]></value>
  55. </attribute>
  56.  
  57. <attribute>
  58. <name><![CDATA[Indeks prędkośd]]></name>
  59. <value><![CDATA[T]]></value>
  60. </attribute>
  61.  
  62. <attribute>
  63. <name><![CDATA[Indeks nośnośd]]></name>
  64. <value><![CDATA[88]]></value>
  65. </attribute>
  66.  
  67. <attribute>
  68. <name><![CDATA[Sezon]]></name>
  69. <value><![CDATA[Zimowe]]></value>
  70. </attribute>
  71.  
  72. <attribute>
  73. <name><![CDATA[Typ pojazdu]]></name>
  74. <value><![CDATA[Osobowe]]></value>
  75. </attribute>
  76. </attributes>
  77.  
  78. <availability>1</availability>
  79.  
  80. </offer>
  81.  
  82. </offers>
  83.  
  84. </loadOffers> </pasaz:Body> </pasaz:Envelope>


a tutaj moje próby z PHP:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5. <title></title>
  6. </head>
  7. <body>
  8. <?php
  9. $pobierz = simplexml_load_file('sample.xml');
  10.  
  11.  
  12. echo $pobierz->offer[0]->name[0];//attributes();
  13.  
  14.  
  15. ?>
  16. </body>
  17. </html>


Zaznaczam, ze jestem początkującym i nie pisze do was w oczekiwaniu na gotowca, a w celu olśnienia mego umysl. Starałem się szukać po wielu stronach w google i nic, dlatego próbuje tutaj. Bardzo proszę o wyrozumiałość i pomoc
Gość
Ponieważ nie dopisałem pisze drugi post. Chciałbym z w/w pliku XML wyłuskać cenę, nazwę producenta itd, itp.
job
Czy to nie powinno zadziałać?

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5. <title></title>
  6. </head>
  7. <body>
  8. <?php
  9. $pobierz = simplexml_load_file('sample.xml');
  10.  
  11.  
  12. echo $pobierz->offer[0]->attribute[2]->name;
  13.  
  14.  
  15.  
  16.  
  17.  
  18. ?>
  19. </body>
  20. </html>
roghatt
Nie trzeba wypisac pokolei znaczniki wszystkie w których znajdują się dane?
Wszystko jest jeszcze w inne znaczniki wstawione w offers i attributes

  1. $pobierz = simplexml_load_file('sample.xml');
  2.  
  3.  
  4. echo $pobierz->offers->offer->attributes->attribute[2]->name;
job
Wydaje mi sie, że wszystkich nie trzeba, tak czy inaczej nie chce dalej mi nic wyświetlać. Nie ma nikt na to rady? sad.gif
job
Wiem już, że problem tworzy CDATA w pliku XML. Pytanie teraz jak poprawnie napisać skrypt w PHP?
raval
Witam, miałem kiedyś podobny problem i chętnie bym się dowiedział jak go rozwiązać, a ponieważ widzę, że temat aktywny, to czy ma ktoś jakąś rade na to? tongue.gif
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.