| | |
| Stránka: 1 z 1
| [ Príspevkov: 7 ] | |
Autor | Správa |
---|
Registrovaný: 01.05.07 Prihlásený: 23.07.19 Príspevky: 420 Témy: 151 |
ahojte,
na linuxsofte som našiel články o spracovani XML súboru pomocou PHP. Zadania sú asi takéto:
XML súbor
Kód: <?xml version="1.0" encoding="UTF-8"?> <FINANCE> <PRIJMY> <PRIJEM id="1"> <NAZEV>Plat</NAZEV> <CASTKA>12000</CASTKA> </PRIJEM> <PRIJEM id="2"> <NAZEV>Články na Linuxsoft</NAZEV> <CASTKA>3000</CASTKA> </PRIJEM> </PRIJMY> <VYDAJE> <VYDAJ id="1"> <NAZEV>Byt</NAZEV> <CASTKA>4500</CASTKA> </VYDAJ> <VYDAJ id="2"> <NAZEV>Jídlo</NAZEV> <CASTKA>2500</CASTKA> </VYDAJ> <VYDAJ id="3"> <NAZEV>Koníčky</NAZEV> <CASTKA>1500</CASTKA> </VYDAJ> </VYDAJE> </FINANCE>
php skript potom vyzerá takto Kód: <? $nas_soubor="./finance.xml";
//co se má stát, když narazíme na počáteční a koncovou značku function PocatecniZnacka ($parser, $nazev, $atributy) { echo "Narazil jsem při čtení na značku $nazev s atributy:"."<BR>"; echo print_r($atributy)."<BR>"; }
function KoncovaZnacka ($parser, $nazev) {} // fáze 1) instance parseru $nas_parser=xml_parser_create(); // fáze 2) řekneme parseru, co má udělat když se dostane k // počáteční značce xml_set_element_handler ($nas_parser, "PocatecniZnacka", "KoncovaZnacka"); // fáze 3) vlastní čtení souboru, práce s ním a ukončení parseru if (!($obsahsouboru = fopen($nas_soubor, "r"))) die("Nemohu otevřít XML pro čtení.");
while ($data = fread($obsahsouboru, 5)) xml_parse($nas_parser, $data, feof($obsahsouboru));
xml_parser_free($nas_parser); ?>
to čo ma trápi je vec, že sa v tom skripte pracuje s premennými $parser, $nazev, $atributy, pričom tie tam nie sú nikde definované (je tam akurát nas_parser), a ani mi nejak neprídu že by vyplývali z toho XML dokumentu.
Pozeral som sa do mnohých návodov na XML, avšak bohužial sa o tom nikto nezmienoval, ako to vlastne funguje
budem teda rad za každú radu
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 20.01.2011 17:09 | |
|
Fciou xml_set_element_handler urcis, ze pri najdeni otvaracieho tagu v dokumente sa zavola fcia PocatecniZnacka, a to s troma argumentami, ktore su tak pomenovane. O tom, ake argumenty prijimaju fcie ("handlery"), ktore handluju najdenie pociatocnej a koncovej znacky, sa docitas v dokumentacii. http://sk.php.net/xml_set_element_handler
|
|
Registrovaný: 01.05.07 Prihlásený: 23.07.19 Príspevky: 420 Témy: 151 |
z dokumentácie: "The first parameter, parser, is a reference to the XML parser calling the handler."
to by potom musela ta fcia vyzerať takto:
function PocatecniZnacka ($nas_parser...
nie?
okrem toho vravíš, že "s troma argumentami, ktore su tak pomenovane", ale ja nevidím kde sú pomenované, oni sú spomenuté u tej funkcie, ale tá ich predsa musí odniekiaľ vziať; ako može vedieť čo to znamená taká premenná $nazev.
proste chápal by som, keby bolo niekde nadefinované, že premenna nazev = taky a onaky tag z xml dokumentu; ale to nikde neni
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 20.01.2011 21:39 | |
|
Obavam sa, ze nerozumies, ako pracuju fcie. Trochu odbocme od XML, predstav si fciu, ktora vracia dajme tomu dvojnasobok zadaneho argumentu:
Kód: function dvojnasobok($n) { return $n * 2; } To ale neznamena, ze kazda premenna, ktoru budeme podstrkavat ako parameter tejto fcie, sa musi tiez volat $n ako parameter: Kód: $x = 5; echo dvojnasobok($x); Takisto v tvojom priklade s XML - argument sa nazval $parser, tak vnutri tela fcie sa pracuje s $parser ($n v mojom kode), ale nic to nehovori o tom, ako sa bude volat samotna premenna s instanciou toho XML parsera ($x v mojom kode).
Ujasni si prosim, ako funguju zakladne prvky programovacich jazykov predtym, ako zacnes robit nieco zlozitejsie.
|
|
Registrovaný: 01.05.07 Prihlásený: 23.07.19 Príspevky: 420 Témy: 151 |
ďakujem. už chápem tomu, ako pracuje funkcia. lenže v tom kode z linuxsoftu práve chýba tá časť, ktorú si vo svojom príklade označil takto:
"$x = 5;
echo dvojnasobok($x);"
proste funkcia je nadefinovaná, potom je volaná ako start element handler, ale volaná je iba pomocou "xml_set_element_handler ($nas_parser, "PocatecniZnacka"..."
není tam napr. "xml_set_element_handler ($nas_parser, PocatecniZnacka($x, $y, $z)..." pričom x, y, z by boli niekde definované.
toto mi vrta hlavou. nepochybujem, že je ten kod správny, akurát mi robí problém to pochopiť
dakujem ti, že sa tu so mnou otravuješ
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
hodnoty argumentov sa do funkcie PocatecniZnacka() vkladaju automaticky... ked sa napr. spracovava riadok <PRIJEM id="1">, tak $nazev obsahuje PRIJEM a $atributy zrejme pole id => 1
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 01.05.07 Prihlásený: 23.07.19 Príspevky: 420 Témy: 151 |
aha. jasné. to som si všimol, že ked som skript vykonal tak že sa mi ukázalo to čo hovoríš, ale nechápal som prečo. dík za vysvetlenie;
|
|
| Stránka: 1 z 1
| [ Príspevkov: 7 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| otazka na parsovanie xml v php v PHP, ASP | 12 | 731 | 17.03.2010 14:53 Broko71 | | Generovanie XML:Chybná analýza XML: žiadny prvok sa nenašiel v HTML, XHTML, XML, CSS | 1 | 874 | 16.12.2011 16:49 Ďuri | | XML Schema => XML instance document v HTML, XHTML, XML, CSS | 0 | 726 | 02.11.2009 17:46 sINN3r | | xml v HTML, XHTML, XML, CSS | 1 | 768 | 02.04.2009 13:38 Tominator | | XML kodovanie v HTML, XHTML, XML, CSS | 10 | 1266 | 10.05.2023 13:48 jojo46 | | xml pomoc v PHP, ASP | 6 | 700 | 17.07.2009 23:15 p360t | | xml parser v PHP, ASP | 2 | 612 | 29.04.2009 16:10 Draex | | porovnanie XML v Ostatné programy | 2 | 566 | 17.05.2016 0:41 lenuska320 | | Parsovanie XML v Assembler, C, C++, Pascal, Java | 1 | 395 | 04.06.2012 10:40 Siriuse | | XML parse v PHP, ASP | 2 | 532 | 09.09.2010 8:47 Antuanet | | Nevalidné XML v HTML, XHTML, XML, CSS | 6 | 809 | 18.10.2009 9:02 Ďuri | | Generovanie xml v PHP, ASP | 2 | 590 | 06.11.2010 9:57 NikonD5000 | | uprava xml v HTML, XHTML, XML, CSS | 4 | 755 | 01.07.2009 11:59 Romanko | | XML export v PHP, ASP | 22 | 1115 | 25.01.2010 16:49 Miko | | xml vystup v PHP, ASP | 6 | 578 | 21.08.2008 16:07 MKI-Miro | | parsovanie xml v PHP, ASP | 1 | 435 | 22.10.2011 19:13 chrono |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|