Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]odczyt pliku xml..., plik xml wygenerowabny dla ceneo.pl
kukix
post 19.10.2007, 10:04:25
Post #1





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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ź..

Ten post edytował kukix 19.10.2007, 10:25:10
Go to the top of the page
+Quote Post
c3zi
post 19.10.2007, 10:58:47
Post #2





Grupa: Zarejestrowani
Postów: 266
Pomógł: 20
Dołączył: 15.11.2006
Skąd: Koszalin

Ostrzeżenie: (0%)
-----


Podpowiedź: simplexml


--------------------
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Go to the top of the page
+Quote Post
kukix
post 28.10.2007, 14:02:07
Post #3





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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..
Go to the top of the page
+Quote Post
aln
post 11.02.2008, 12:09:18
Post #4





Grupa: Zarejestrowani
Postów: 1
Pomógł: 1
Dołączył: 26.12.2005

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 09:41