Starší komentáře ke článku: PHP a práce s dokumentem XML 3.

Zpět na článek | Úvodní stránka Interval.cz

Avatar

Autor komentáře: Scorpi

Datum vložení: 27.6.2002 0:39:26

Sice chapu, ze to byl jen priklad, nicmene podle mne je tedy naznacene reseni dost "upocene".
Predne mi neni jasne, proc tabulku uchovavat v xml souboru s tagy "radek" a "sloupec" - to uz prece mohu rovnou pouzit tagy "tr" a "td" - v xml je prece volne pole pro to, aby nazvy tagu nesly obsahovy vyznam, a nikoliv jen strukturacni. Vas prikladovy xml soubor neobsahuje zadnou informaci navic oproti tomu, kdyby byl zapsan v xhtml (a pripadne upravy dokumentu lze vetsinou elegantneji provest pomoci DOM XML funkci). Krome toho v praxi zridkakdy potrebujeme prevadet xml dokumenty v takto idealne "tabelovane" podobe...
Zadruhe - mnohem jednodussi a vhodnejsi by v tomto pripade byla transformace pres xslt (coz lze v php vyuzit take) - stacily by na to 3 jednoduche templaty ve stylesheetu a jednoduchy obsluzny php skript.
Mam tedy pocit, ze Vase ukazka neni prilis vhodnou demonstraci moznosti funkci XML parseru v php, nebot teziste jeho pouziti IMHO spociva trochu jinde.


Avatar

Autor komentáře: Marek Soldát

Datum vložení: 27.6.2002 9:36:50

Ocekavam, ze kazdy uz si upravi parser podle sveho. "radek" lze jednoduse zmenit kuprikladu na "vyrobek". A pak uz jen pracovat s "nazev", "popis" a "cena" jako se sloupci.

V XML souboru je "radek" a "sloupec" uveden pro to, aby pri jeho cteni ctenar rychle pochopil, jak bude vypadat vysledna tabulka pri pouziti tohoto parseru. Ovsem beze zmeny parseru. Staci prohodit par pismenek a uz mame z radku sloupce a ze sloupcu radky. Navic ani vystup nemusi byt tabulka, muze to byt holy text, seznam, cokoli... Proto jsem to take nazval "univerzalni parser".

Avatar

Autor komentáře: Miroslav Mareš

Datum vložení: 27.6.2002 11:11:48

Zajímalo by mě to použití xslt šablon v PHP. Mohl byste mě "nasměrovat" jak se to provádí??

Avatar

Autor komentáře: Scorpi

Datum vložení: 27.6.2002 13:11:25

Jiste - kouknete na <a href='http://www.php.cz/manual/cs/ref.xslt.php' target='_blank'>http://www.php.cz/manual/cs/ref.xslt.php</a>. Pro tuto extenzi php vyuziva Sablotron. Pro pohodlnou manipulaci jsou k dipozici i nejake tridy na phpclasses.org.

Avatar

Autor komentáře: Cihelka Petr

Datum vložení: 27.6.2002 13:29:00

Pro uzivatele ktery se uz XML zabyva, coz zrejme jste, je clanek asi nezajimavy.
Ale pro uzivatele kteri se s XML seznamuji a objevuji jeho zakouti, je myslim velice prinosny. Sam sem pri objevovani XML resil problem jak dostat data ulozena mezi tagy (<TAG>data</TAG>), sice ne moc dlouho :)) ale nachvili me to zastavilo.

Jinak XML je velice mocny nastroj.

XSLT v PHP sice je, ale stale je oznaceno za experimentalni, alespon co vim. Takze jeho vyuzitim a ostrym nasazenim bych jeste pockal, mohou tam neco zmenit a predelavat vsechny scripty, uuuffff :((

Avatar

Autor komentáře: Scorpi

Datum vložení: 27.6.2002 16:27:49

Ano, je to experimentalni modul - nicmene od samotnych xslt funkci je mozne se odstinit pomoci nejake obsluzne tridy, kterou v pripade nejake zmeny teto extenze upravite...
Samozrejme mate pravdu, ze experientalni moduly je potreba brat s rezervou, ovsem v tomto pripade prislusne php funkce vykonavaji pouze ulohu "managera" procesu XSLT transformace, tj. vzdy zrejme pujde o princip "vezmi xml soubor a xslt stylesheet a vyhod vysledek transformace", jen k tomu budou mozna potreba jine povely :-))

Avatar

Autor komentáře: Lukas Mach

Datum vložení: 13.7.2002 19:19:56

jestli bych se mohl zeptat - da se pomoci xslt dosahnout takovych silenosti jako "vsechno co je uzavreno do znacky <serad> rozdel na bloky ohranicene znackou <blok> a serad tyto bloky sestupne podle obsahu vnorene znacky <datum>, kterou budes brat jako integer"? a dalsi veci jako ze znacku <vloz soubor="soubor.xml"/> nahradi obsahem souboru soubor.xml (myslim tim, jestli jde nadefinovat smysl te znacky) - vim, ze to jde pomoci externich entit a ze to muzu udelat rovnou v php jako processing instructions, ale to nema takovou flexibilitu (treba - vloz obsah souboru XYZ.xml a ignoruj obsahy znacky <x>...</x>)

uz jsem neco takoveho delal v php pomoci funkci xml_, ale vypada to, ze je to moc pomaly (50 souboru, kazdej s 400 radky po 50 znacich - ty mely bejt vlozeny do jednoho xml dokumentu a jeho vygenerovani pomoci toho myho zazraku trvalo 5 vterin, coz se mi zda hodne)

koukal jsem po clancich o xslt, ale vzdy se to zastavi u zakladu (treba ale ty veci co tu popisuju nejdou, resp. jdou jinak), php manual tam toho moc nema.

diky, staci rict jestli to jde nebo ne... ja uz to nejak najdu :-)

Avatar

Autor komentáře: kriplozoik

Datum vložení: 8.7.2002 14:10:00

podle me nebyl druhy a treti dil tak prinosny jako prvni.
dostal jsem xml dokument s vice nez 6000 radky, kde byl tag REM, jenz mel funkci poznamky a vse, co bylo v nem se melo ignorovat. mel jsem to zpracovat. a musim rict, ze treba v tomhle ohledu mi vas clanek teda moc nepomohl (ale nakonec jsem si s tim poradil :-)).

Avatar

Autor komentáře: Krimak

Datum vložení: 17.2.2003 14:43:34

Mam nekolik elementarnich otazek a doufam, ze mi na ni nekdo odpovi (i kdyz tohle je dost stary clanek).

Je vubec vhodne ukladat data do XML misto do napr mySQL?
Nezatezuje to zbytecne server?
Neni lepsi misto parsovani dat v PHP nainstalovat Tomcat(nebo neco jineho) a parsovat XML pres stylesheety?

Dekuji za odpoved

Avatar

Autor komentáře: Marek Soldát

Datum vložení: 17.2.2003 16:21:06

Vite, na urcity typ dat proste MySQL nestaci (i kdyz ho pouzivam vsude, kde je to mozne). Jsou ale situace, kdy se data zkratka nedaji nasypat do jedne tabulky - zde nastupuje XML. Vymena dat mezi ruznymi servery take pomoci SQL probihat nemuze (resp. muze, ale je to prilis neefektivni).

Parsovat XML pres stylesheety samozrejme muzete, casto je ale potreba data pred odeslanim klientovi prislusne upravit (treba nahradit urcite vyrazy jinym textem, udelat z nekterych casti odkazy atd.) a to uz jde pres XSLT jen tezko.

Avatar

Autor komentáře: Tuft

Datum vložení: 8.2.2004 12:16:32

misto toho aby to vypsalo informace z xml tak to pise akorat undefined offset.
nejspis mam blbe nastaveny php.
nevite nekdo co stim mam delat?

(mam php 4.3.4, IIS 5)

predem diky

Avatar

Autor komentáře: naštavný čtenář

Datum vložení: 20.8.2004 12:53:00

To, že tu lčánky nedávají smysl nebo jsou o ničem, je vcelku normální, ale nechápu, proč vytváříte scripty, které jsou totálně na..... Viděl někdy pisatel článku XML?????

Avatar

Autor komentáře: Jméno a příjmení

Datum vložení: 20.8.2004 13:01:38

Když si někdo nedokáže přečíst ani datum publikování článku, nesmí se divit, když mu něco nefunguje ;-)

Avatar

Autor komentáře: Josef Procházka

Datum vložení: 28.2.2007 13:20:38

Lidičky mám problém s načtením dat z XML v PHPečku. Oba dva soubory (jak .xml tak .php) mam v utf-8 kódování. Když načtu data z XMLka tak se mi to před diakritikou zalomí a vypadá to např takhle: ru či čka namísto ručička (jen příklad). Nevím jak to mám spravit. Nemáte typ? Děkuju.

Avatar

Autor komentáře: Tomas

Datum vložení: 12.7.2007 14:20:21

Řeším stejný problém...přišel jste na něco ?

Avatar

Autor komentáře: jenda

Datum vložení: 15.9.2007 17:45:21

ahoj, mám problém s ignorováním přebytečných dat v souboru XML,učím se vypisovat jen některé elementy a zkouším to tak, že jsem nějaké přidal skusil sem to na xml souboru s řádky a sloupci. Zkusil sem použít: -xml_set_default_handler($parser, "vychozi"); ale asi nevím co správně definovat ve fci vychozi(), ať zkouším cokoli, pořád mi to vypisuje i nechtěné údaje, například <cena>1220,-</cena> Poraďte prosím někdo, možná je k mání i nějaké novější řešení, hází mi to i spoustu NOTICE.. Dík

Avatar

Autor komentáře: Honzajs

Datum vložení: 13.2.2009 15:46:30

Chtel bych podekovat autorovi, vnesl mi do problematiky o dost vic svetla. Presto mam takovej dotaz - jedna sluzba mi posila takovy divny XMLka, dam priklad formatovani toho XML: <?xml version="1.0" encoding="utf-8"?> <Vysledek atribut1="Brambor" atribut2="Mrkev" atrib3="Redkvicka"> <Priklad ID="111" Kod="TST" Kod2="Celer" Cast="Cibule"/> </Vysledek> Cili tag Vysledek nemuzu identifikovat a nemuzu identifikovat ani tag Priklad. Chtel bych vycitat hodnoty vsech atributu do pole, ale neprisel jsem na to, jak to pomoci prikladu udelat. Vedel by nekdo nejakej tip?

Zpět na článek | Úvodní stránka Interval.cz