Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [XML][PHP]SimpleXML - odczyt z pliku XML
Forum PHP.pl > Forum > Przedszkole
NaPeK
Panowie jako totalny laik w temacie php proszę o przykładowy kod jak odczytać (echo) z pliku dane.xml

item_no, first_name, names

dla jednej i wszystkich pozycji

z góry dziekuję wink.gif



  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <batch>
  3. <batch_no>10</batch_no>
  4. <list>
  5. <items>
  6. <item_no>12345</item_no>
  7. <amount>2</amount>
  8. <person type="address">
  9. <first_name>Jan</first_name>
  10. <last_name>Kowalski</last_name>
  11. <street>Dluga</street>
  12. </person>
  13. <box>
  14. <item>
  15. <itemno>12334567</itemno>
  16. <names>Item1</names>
  17. </item>
  18. </box>
  19. </items>
  20. <items>
  21. <item_no>54321</item_no>
  22. <amount>4</amount>
  23. <person type="address">
  24. <first_name>Janina</first_name>
  25. <last_name>Kowalska</last_name>
  26. <street>Kreta</street>
  27. </person>
  28. <box>
  29. <item>
  30. <itemno>7654321</itemno>
  31. <names>Item2</names>
  32. </item>
  33. </box>
  34. </items>
  35. </list>
  36. </batch>
viking
XML który podałeś zawiera błędy.

http://php.net/manual/en/book.simplexml.php

A w pierwszym komentarzu masz jak to szybko przekształcić na tablicę.
NaPeK
xml poprawiony, do "importu" pliku doszedlem

  1. $xml = simplexml_load_file('dane.xml');


chodzi głównie o wskazówkę jak uzyć echo na poszczegolnych zagniezdzeniach
viking
http://php.net/manual/en/simplexml.examples-basic.php

Masz wszystko opisane z przykładami. Do najprostszego wybierania wystarczy zwykły foreach.
NaPeK
Jak na laika i pierwszy kod poszlo gladko...

Jakaś pomoc z tym "zwykłym" foreach da rade uzyskać ?

  1. $xml = simplexml_load_file('dane.xml');
  2.  
  3. echo $xml->list[0]->items[0]->item_no . '<br>';
  4. echo $xml->list[0]->items[0]->person[0]->first_name . '<br>';
  5. echo $xml->list[0]->items[0]->box[0]->item[0]->names . '<br>';
  6. ?>



z foreach sobie poradziłem

  1. foreach($xml->list[0]->children() as $itemy) {
  2.  
  3. echo $itemy->item_no . '<br>';
  4. echo $itemy->person->first_name . '<br>';
  5. echo $itemy->box->item->names . '<br>';
  6. }


pozostaje jakaś "samorosnąca" tabelka

to z tabelka tez dalem rade

  1. <?php
  2. $xml = simplexml_load_file('dane.xml');
  3. ?>
  4. <table>
  5. <thead>
  6. <tr>
  7. <th>1</th>
  8. <th>2</th>
  9. <th>3</th>
  10. </tr>
  11. </thead>
  12.  
  13. <tbody>
  14.  
  15. <?php foreach($xml->list[0]->children() as $itemy) :?>
  16. <tr>
  17. <td><?php echo $itemy->item_no; ?></td>
  18. <td><?php echo $itemy->person->first_name; ?></td>
  19. <td><?php echo $itemy->box->item->names; ?></td>
  20. </tr>
  21. <?php endforeach; ?>
  22. </tbody>
  23. </table>


mam tylko pytanko co zrobić w przypadku gdy mam w xml 2 pozycje item pod box

  1. <box>
  2. <item>
  3. <itemno>111111</itemno>
  4. <names>Item2</names>
  5. </item>
  6. <item>
  7. <itemno>222222</itemno>
  8. <names>Item2a</names>
  9. </item>
  10. </box>
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.