Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]odczyt pliku xml...
Forum PHP.pl > Forum > PHP
kukix
Witam.
Potrzebuje odczytać plik xml, który został wygenerowany dla porównywarki ceneo.pl


plik wygląda tak:
  1. <?xml version="1.0" encoding="ISO-8859-2"?>
  2. <!DOCTYPE pasaz:Envelope SYSTEM "loadOffers.dtd">
  3. <pasaz:Envelope xmlns:pasaz="http://schemas.xmlsoap.org/soap/envelope/">
  4. <pasaz:Body>
  5. <loadOffers xmlns="urn:ExportB2B">
  6. <offers>
  7.      <offer>
  8.            <id>19</id>
  9.            <name>produkt 1</name>
  10.            <price>68.37</price>
  11.            <url>index.php</url>
  12.            <categoryId>bezpiecznikowo licznikowe</categoryId>
  13.            <image>photo/8/4/2/1_84298049931d.jpg</image>
  14.            <attributes>
  15.                  <attribute>
  16.                        <name>Producent</name>
  17.                        <value>Kalisz</value>
  18.                  </attribute>
  19.            </attributes>
  20.      </offer>
  21.      <offer>
  22.            <id>20</id>
  23.            <name>produkt 1</name>
  24.            <price>112.19</price>
  25.            <url>index.php</url>
  26.            <categoryId>bezpiecznikowo licznikowe</categoryId>
  27.            <image>photo/6/0/b/1_60b50f401080.jpg</image>
  28.            <attributes>
  29.                  <attribute>
  30.                        <name>Producent</name>
  31.                        <value>Kalisz</value>
  32.                  </attribute>
  33.            </attributes>
  34.      </offer>
  35. </offers>
  36. </loadOffers>
  37. </pasaz:Body>
  38. </pasaz:Envelope>


W jaki sposób kodem php odczytać zawartośc tego pliku, abym otrzymał pętle z pozycjami <offer>?

P.S. plik mozna tez zobaczyc pod tym adresem.


-------------- EDIT --------------
Prosze o jakąś podpowiedź..
c3zi
Podpowiedź: simplexml
kukix
Cytat(c3zi @ 19.10.2007, 11:58:47 ) *
Podpowiedź: simplexml


Dzieki za podpowiedź... simple XML bardzo pomogło..

wykorzystałem kawalek:
  1. <?php
  2. include 'example.php';
  3.  
  4. $xml = new SimpleXMLElement($xmlstr);
  5.  
  6. /* For each <movie> node, we echo a separate <plot>. */
  7. foreach ($xml->movie as $movie) {
  8.  echo $movie->plot, '<br />';
  9. }
  10.  
  11. ?>



natrafiłem jednak na "poważny problem"...

nie wiem, jak posortowac te produkty... w sql nie byłoby problemu, ale nie widze żadnej funkcji simpleXML, która sorotwalaby wyniki..
prosze o podpowiedź, również jak ograniczyć ilość wyświetlanych pozycji.. coś na zasadzie LIMIT w sql'u..
aln
co do limitowania wynikow. mozesz dodac jakis warunek break'a np
  1. <?php
  2. $i = 0;
  3. $limit = 10;
  4. foreach(...){
  5. ...
  6. if(i++>=$limit) break;
  7. }
  8. ?>

jesli jednak chodzi ci o stronicowanie to musisz miec jeszcze offset
  1. <?php
  2. $i = 0;
  3. $limit = 10;
  4. $offset= $limit * $_GET['strona'];
  5. foreach(...){
  6. if($i>=$offset){
  7. echo ...
  8. }
  9. if(i++>=$limit) break;
  10. }
  11. ?>

to taka podpowiedz w skrocie na szybko i bez testow wiec moga byc jakies niedokladnosci
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.