Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][XML][PHP]Utworzenie struktury XML-a
Forum PHP.pl > Forum > Przedszkole
mirkus
Witam mam taki problem chciałbym utworzyć strukturę i zapisać ją w xml-u:
Pomyślałem sobie coś takiego:
- będą 2 tablica w jednej bedę przechowywał zmienne a w drugiej powiązania,

- tablica przechowująca zmienne:
  1. tab1[1]="sql";
  2. tab1[2]="postgree";
  3. tab1[3]="oracle";
  4. tab1[4]="linux";
  5. tab1[5]="solaris";
  6. tab1[6]="windows";
  7. tab1[7]="windosxp";
  8. tab1[8]="windows7";


- tablica przechowująca powiązania zmiennych (pierwsza kolumna jest rodzicem, druga potomkiem):
  1. tab2[0][0]=1; tab2[0][1]=2;
  2. tab2[1][0]=1; tab2[1][1]=3;
  3. tab2[2][0]=2; tab2[2][1]=4;
  4. tab2[3][0]=3; tab2[3][1]=5;
  5. tab2[4][0]=3; tab2[4][1]=7;
  6. tab2[5][0]=7; tab2[5][1]=8;
  7. tab2[6][0]=7; tab2[6][1]=9;



w efekcie chcialbym wygenerowac plik xml majacy strukturą:
  1. <sql>
  2. <postgree>
  3. <linux>
  4. </linux>
  5. </postgree>
  6. <oracle>
  7. <solaris>
  8. </solaris>
  9. <windows>
  10. <windowsxp>
  11. </windowsxp>
  12. <windows7>
  13. </windows7>
  14. </windows>
  15. </oracle>
  16. </sql>


czy ktoś może miał z takim problemem do czynienia, a może jest inny łatwiejszy sposób.
Z góry dzięki za pomocne podpowiedzi smile.gif
Pawel_W
DOM
mirkus
Dzięki za wskazanie ścieżki postępowania smile.gif

wykombinowałem coś takiego: tabele są przykładowe:
$tablica[0]="aaa"; - korzen
$tablica[1]="glowny1"; - potomek korzenia
$tablica[2]="potomek1"; - potomek wezla glowny1
$tablica[3]="potomek2"; - potomek wezla glowny1
$tablica[4]="potomek3"; - potomek wezla glowny2
$tablica[5]="glowny2"; - potomek korzenia

tabela z zależnościami:(kolumna 0 - rodzic, potomek- kolumna1)
$pow[0][0]=0; $pow[0][1]=1;
$pow[1][0]=0; $pow[1][1]=5;
$pow[2][0]=1; $pow[2][1]=2;
$pow[3][0]=1; $pow[3][1]=3;
$pow[4][0]=5; $pow[4][1]=4;

  1. <?php
  2. $tablica[0]="aaa";
  3. $tablica[1]="glowny1";
  4. $tablica[2]="potomek1";
  5. $tablica[3]="potomek2";
  6. $tablica[4]="potomek3";
  7. $tablica[5]="glowny2";
  8.  
  9. $pow[0][0]=0; $pow[0][1]=1;
  10. $pow[1][0]=0; $pow[1][1]=5;
  11. $pow[2][0]=1; $pow[2][1]=2;
  12. $pow[3][0]=1; $pow[3][1]=3;
  13. $pow[4][0]=5; $pow[4][1]=4;
  14.  
  15. $dom = new DOMDocument('1.0', 'iso-8859-1');
  16. $dom->formatOutput = true;
  17.  
  18. $yyy = $dom->createElement($tablica[0], 'jestem glownym elementem');
  19. $dom->appendChild($yyy);
  20.  
  21. for($j=0;$j<count($tablica);$j++)
  22. {
  23. for($i=0;$i<5;$i++)
  24. {
  25. if($pow[$i][0]==$j)
  26. {
  27. $zmienna=$pow[$i][1];
  28. $zzz = $dom->createElement($tablica[$zmienna], 'tekst');
  29. $yyy->appendChild($zzz);
  30. }
  31. }
  32. }
  33.  
  34. echo 'Wrote: ' . $dom->save("test.xml") . ' bytes' . '<br>';
  35. echo $dom->saveXML() . '<br>';
  36.  
  37.  
  38. ?>


a wynik jest następujący:
  1. <aaa>
  2. jestem glownym elementem
  3. <glowny1>tekst</glowny1>
  4. <glowny2>tekst</glowny2>
  5. <potomek1>tekst</potomek1>
  6. <potomek2>tekst</potomek2>
  7. <potomek3>tekst</potomek3>
  8. </aaa>


potomków nie podciąga pod glowny1 i glowny2. Próbowałem różnymi sposobami może jest jakaś funkcja lub metoda na rozwiązanie tego problemu??
Z góry dzięki za pomoc
Pawel_W
człowieku, ale ty potrafisz sobie utrudnić życie winksmiley.jpg

nie prościej by było jakbyś zrobił sobie taką tablicę:
  1. $xml = array(
  2. 'aaa' => array(
  3. 'glowny1' => array(
  4. 'potomek1' = array();
  5. 'potomek2' = array();
  6. );
  7. 'glowny2' => array(
  8. 'potomek3' = array();
  9. 'potomek4' = array();
  10. );
  11. );
  12. );
  13. i potem po prostu zamieniasz to na xml ;)
mirkus
No można i tak ale jak na przykład będzie 10 potomków(zagnieżdżeń) to już będzie to trochę zakręcone ten kod w php.
A czy była by opcja żeby odwołać się do wybranego fragmentu w kodzie xml i tam wstawić potomka??

A czy jest możliwość w DOM zeby zmienić żeby zmienna $yyy nie odnosiła się do korzenia tylko mogła być podmieniana np do wezel1?questionmark.gif?


PROBLEM ROZWIAZANY smile.gif
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.