Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> XML parsowanie simplexml
bdhpl
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 17.04.2009

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


Mam taki xml:

  1. <o id="329">
  2. <cat>
  3. Biuro i firma/Biuro/Meble biurowe/Biurka
  4. </cat>
  5. <name> BIURKO JAY OLCHA </name>
  6.  
  7. <attrs>
  8. <a name="Producent">producent</a>
  9. <a name="Kod_producenta">kod</a>
  10. </attrs>
  11. </o>



i taki php
  1. foreach($xml->children() as $child) {
  2.  
  3. // $role = $child->attributes();
  4.  
  5. foreach($child as $key) {
  6.  
  7.  
  8.  
  9. echo $key['id'];
  10. echo "<br>";
  11. echo $key->cat;
  12. echo "<br>";
  13. echo $key->name;
  14. echo "<br>";
  15. echo $key['weight'];
  16. echo "<br>";
  17. //
  18. foreach($key->imgs->children() as $imgs)
  19. {
  20. echo $imgs['url'];
  21. echo "<br>";
  22. }
  23. foreach($key->attrs->attributes() as $attrs)
  24. {
  25. echo $attrs->a;
  26. echo "<br>";
  27.  
  28.  
  29. }
  30.  
  31. }
  32. }


Jak wyciągnąc wartość producent
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kreatiff
post
Post #2





Grupa: Zarejestrowani
Postów: 324
Pomógł: 105
Dołączył: 7.08.2012

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


Nie wiem co z tą pętlą (wygląda mi jakoś dziwnie, dużo odwołań do nieistniejących węzłów, brak sprawdzania, czy dany węzeł ma dzieci czy nie, tylko od razu foreach), ale by dobrać się do tego, co chcesz, to wystarczy:
  1. echo $child->attrs[0]->a[0];

Albo skorzystać z xpath, gdy kolejność węzłów może nie być zawsze taka sama:
  1. echo (string)$child->xpath("attrs/a[@name = 'Producent']")[0];


Ten post edytował kreatiff 28.10.2020, 13:48:58
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 12.10.2025 - 11:08