Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [funkcja] array to xml
menic
post 29.08.2007, 17:09:32
Post #1





Grupa: Zarejestrowani
Postów: 493
Pomógł: 0
Dołączył: 14.06.2003
Skąd: Tomaszów Lubelski/Rzeszów

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


Mała funkcja która tworzy nam xml na podstawie tablicy php. Postarałem się, aby tworzyła poprawnie również elementy, które nie są unikalne. Trzeba tylko przekazać jako ostatni parametr tablicę z nazwami elementów non-unique. Nie obsługuje atrybutów (może kiedyś winksmiley.jpg ).
  1. <?php
  2. /**
  3.  * Tworzy obiekt xml na podstawie tablicy
  4.  *
  5.  * @param array $aXml Wejściowa tablica
  6.  * @param SimpleXMLElement $oXml
  7.  * @param array $aElements tablica non-unique elementów
  8.  * @return SimpleXMLElement
  9.  */
  10. function arrayToXml( array $aXml, SimpleXMLElement $oXml, $aElements = null )
  11. {
  12. static $aArray;
  13.  
  14. if( is_array( $aElements ) )
  15. {
  16. $aArray = $aElements; 
  17. }
  18.  
  19. if( is_array( $aXml ) )
  20. {
  21. foreach( $aXml as $k => $v )
  22. { 
  23. if( is_array( $v ) )
  24. {
  25. if( is_array( $aArray ) )
  26. {
  27. if( in_array( $k, $aArray ) )
  28. {
  29. foreach( $v as $kk => $vv )
  30. {
  31. $oXml->addChild( $k, $vv );
  32. }
  33. }
  34. else 
  35. {
  36. $oXml->addChild( $k );
  37. }
  38. }
  39. else 
  40. {
  41. $oXml->addChild( $k );
  42. }
  43. arrayToXml( $aXml[$k], $oXml->$k );
  44. }
  45. else 
  46. {
  47. if( !is_numeric( $k ) )
  48. {
  49. $oXml->addChild( $k, $v );
  50. }
  51. else 
  52. {
  53. //Tutaj można coś zrobić dla kluczy numerycznych
  54. }
  55. }
  56. }
  57. }
  58. return $oXml;
  59. }
  60. ?>


--------------------
Jak masz cos zrobic dobrze...
...To musisz zrobić to sam.

Uchwycić moment...
Go to the top of the page
+Quote Post

Posty w temacie


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: 24.07.2025 - 16:47