Autor Zpráva
Mah-Pee'-Yah-Too
Profil *
Ahoj všem.

Možná je můj dotaz příliš triviální nebo naopak příliš složitý. Nicméně prosím o radu.

Mám XML soubor s následující strukturou (je to jen část):

- <ciselnik>
<jmeno>kategorie</jmeno>
- <seznam_kategorii>
<popis>Nové</popis>
<kod>N</kod>
<popis>Ojeté</popis>
<kod>O</kod>
<popis>Veterán</popis>
<kod>V</kod>
</seznam_kategorii>
</ciselnik>
- <ciselnik>
<jmeno>skupina</jmeno>
- <seznam_skupin>
<popis>Osobní</popis>
<kod>A</kod>
<kategorie>NOV</kategorie>
<popis>Terénní</popis>
<kod>B</kod>
<kategorie>NOV</kategorie>
<popis>Užitkové</popis>
<kod>C</kod>
<kategorie>NOV</kategorie>
<popis>Nákladní</popis>
<kod>D</kod>
<kategorie>NOV</kategorie>
<popis>Autobusy</popis>
<kod>E</kod>
<kategorie>NOV</kategorie>
<popis>Obytné automobily</popis>
<kod>F</kod>
<kategorie>NOV</kategorie>
<popis>Přívěsy</popis>
<kod>G</kod>
<kategorie>NOV</kategorie>
<popis>Motorky</popis>
<kod>J</kod>
<kategorie>NOV</kategorie>
<popis>Ostatní</popis>
<kod>L</kod>
<kategorie>NOV</kategorie>
</seznam_skupin>
</ciselnik>
- <ciselnik>
<jmeno>znacka_model</jmeno>
- <skupina>
<popis>Osobní</popis>
<kod>A</kod>
<kategorie>NOV</kategorie>
- <znacka>
<popis>Acura</popis>
<kod>CJ</kod>
<kategorie>NO</kategorie>
- <seznam_modelu>
<popis>CL</popis>
<kod>CJA</kod>
<kategorie>O</kategorie>
<popis>EL</popis>
<kod>CJB</kod>
<kategorie>O</kategorie>
<popis>Integra</popis>
<kod>CJD</kod>
<kategorie>O</kategorie>
<popis>NSX-T</popis>
<kod>CJE</kod>
<kategorie>NO</kategorie>
<popis>Ostatní</popis>
<kod>CJZ</kod>
<kategorie>NO</kategorie>
<popis>RL</popis>
<kod>CJF</kod>
<kategorie>NO</kategorie>
<popis>RSX</popis>
<kod>CJH</kod>
<kategorie>NO</kategorie>
<popis>TL</popis>
<kod>CJG</kod>
<kategorie>NO</kategorie>
<popis>TSX</popis>
<kod>CJI</kod>
<kategorie>NO</kategorie>
</seznam_modelu>
</znacka>
- <znacka>
<popis>Aero</popis>
<kod>VF</kod>
<kategorie>V</kategorie>
- <seznam_modelu>
<popis>Ostatní</popis>
<kod>VFZ</kod>
<kategorie>V</kategorie>
</seznam_modelu>
</znacka>
- <znacka>
<popis>Alfa Romeo</popis>
<kod>AA</kod>
<kategorie>NOV</kategorie>
- <seznam_modelu>
<popis>145</popis>
<kod>AAC</kod>
<kategorie>O</kategorie>
<popis>146</popis>
<kod>AAA</kod>
<kategorie>O</kategorie>
<popis>147</popis>
<kod>AAK</kod>
<kategorie>NO</kategorie>
<popis>155</popis>
<kod>AAE</kod>
<kategorie>O</kategorie>
<popis>156</popis>
<kod>AAI</kod>
<kategorie>NO</kategorie>
<popis>159</popis>
<kod>AAO</kod>
<kategorie>NO</kategorie>
<popis>164</popis>
<kod>AAF</kod>
<kategorie>O</kategorie>
<popis>166</popis>
<kod>AAJ</kod>
<kategorie>NO</kategorie>
<popis>33</popis>
<kod>AAB</kod>
<kategorie>O</kategorie>
<popis>75</popis>
<kod>AAD</kod>
<kategorie>O</kategorie>
<popis>Crosswagon Q4</popis>
<kod>AAN</kod>
<kategorie>NO</kategorie>
<popis>GT</popis>
<kod>AAL</kod>
<kategorie>NO</kategorie>
<popis>GTV</popis>
<kod>AAH</kod>
<kategorie>NO</kategorie>
<popis>Ostatní</popis>
<kod>AAZ</kod>
<kategorie>NOV</kategorie>
<popis>Spider</popis>
<kod>AAG</kod>
<kategorie>NO</kategorie>
<popis>Sportwagon</popis>
<kod>AAM</kod>
<kategorie>NO</kategorie>
</seznam_modelu>
</znacka>
- <znacka>
<popis>Allard</popis>
<kod>RA</kod>
<kategorie>V</kategorie>
- <seznam_modelu>
<popis>Ostatní</popis>
<kod>RAZ</kod>
<kategorie>V</kategorie>
</seznam_modelu>
</znacka>
- <znacka>
<popis>Alvis</popis>
<kod>RB</kod>
<kategorie>V</kategorie>
- <seznam_modelu>
<popis>Ostatní</popis>
<kod>RBZ</kod>
<kategorie>V</kategorie>
</seznam_modelu>
</znacka>
- <znacka>
<popis>Armstrong-Siddeley</popis>
<kod>RC</kod>
<kategorie>V</kategorie>
- <seznam_modelu>
<popis>Ostatní</popis>
<kod>RCZ</kod>
<kategorie>V</kategorie>
</seznam_modelu>
</znacka>
- <znacka>
<popis>ASA</popis>
<kod>RD</kod>
<kategorie>V</kategorie>
- <seznam_modelu>
<popis>Ostatní</popis>
<kod>RDZ</kod>
<kategorie>V</kategorie>
</seznam_modelu>
</znacka>
- <znacka>
<popis>Aston Martin</popis>
<kod>CT</kod>
<kategorie>NOV</kategorie>
- <seznam_modelu>
<popis>DB7</popis>
<kod>CTA</kod>
<kategorie>O</kategorie>
<popis>DB9</popis>
<kod>CTD</kod>
<kategorie>NO</kategorie>
<popis>Ostatní</popis>
<kod>CTZ</kod>
<kategorie>NOV</kategorie>
<popis>V12 Vanquish</popis>
<kod>CTF</kod>
<kategorie>NO</kategorie>
<popis>V8 Vantage</popis>
<kod>CTB</kod>
<kategorie>NO</kategorie>
</seznam_modelu>
</znacka>

Jak z každého číselníku (ohraničen tagem <ciselnik></ciselnik> mám udělat rozbalovací menu <select> se jménem definovaným v tagu <jmeno></jmeno>? A jak volat jen mnou požadovaný číselník?

Nikde nemohu najít řešení, přestože si myslím, že jde o běžnou věc.

Dělá se to pomocí XLS transformace? A jak?

Děkuji i za případný odkaz s nastíněným řešením.

S modrou oblohou

Mah-Pee'-Yah-Too
Joker
Profil
Dělá se to pomocí XLS transformace? A jak?
Pomocí XSL transformace. Viz nějaký tutoriál na XSLT.

Anebo se to dá udělat i pomocí PHP a XML parseru. Návod jak pracovat s XML parserem v PHP je třeba tady: http://interval.cz/clanky/php-a-prace-s-dokumentem-xml-1/
Na programování je to sice řekl bych docela vopruz, ale funguje to.
Kajman_
Profil *
Pokud tam není staré php, tak bych šáhnul po
http://cz2.php.net/manual/cs/ref.simplexml.php
Mah-Pee'-Yah-Too
Profil *
Bohužel musím používat staré "péhápko". Takže se asi vrhnu na nastudování XSL transformací... :o( Zákazník si ale myslí, že to budu mít během pár hodin hotový... To teda nevim...

Přesto Vám oběma (Joker & Kajman_) děkuji.

Mah-Pee'-Yah-Too

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0