Stránka: 1 z 2
| [ Príspevkov: 33 ] | 1, 2 |
Autor | Správa |
---|
Registrovaný: 01.01.06 Prihlásený: 25.12.21 Príspevky: 366 Témy: 47 | 47 Bydlisko: TT |
mam z linuxsoftu skript:
Kód: <? $nas_soubor="kniha.xml"; $jeprijem=false; $znacka=""; $bilance=0;
//co se má stát, když narazíme na počáteční a koncovou značku function PocatecniZnacka ($parser, $nazev, $atributy) { global $znacka; global $jeprijem; $znacka=$nazev; if ($znacka=="PRIJEM") $jeprijem=true; if ($znacka=="VYDAJ") $jeprijem=false; }
function KoncovaZnacka ($parser, $nazev) {}; function data ($parser, $data) { global $znacka; global $bilance; global $jeprijem; if ($znacka=="CASTKA" and $jeprijem) echo $data; if ($znacka=="CASTKA" and !$jeprijem) $bilance-=$data; if ($znacka=="TITLE") echo "[$data]"; if ($znacka=="AUTHOR") echo "[$data]"; } $nas_parser=xml_parser_create(); xml_set_element_handler ($nas_parser, "PocatecniZnacka", "KoncovaZnacka"); xml_set_character_data_handler($nas_parser, "data"); // 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, 1024)) xml_parse($nas_parser, $data, feof($obsahsouboru));
xml_parser_free($nas_parser); // echo $bilance;
?>
a xml subor Kód: <?xml version="1.0" ?>
<books> <book> <title>The Grapes of Wrath</title> <author>John Steinbeck</author> </book> <book> <title>The Pearl</title>
<author>John Steinbeck</author> </book> <book> <title>PHP de Luxe</title> <author>Richard Samar, Christian Stocker</author> </book> </books>
Preco mi to vyhadzuje vystup v tvare Kód: [The Grapes of Wrath][ ][John Steinbeck][ ][ ][The Pearl][ ][John Steinbeck][ ][ ][PHP de Luxe][ ][Richard Samar, Christian Stocker][ ][ ]
Teda, ze su tam tie prazdne [] ? Pri tom v XML praydne nie su...
Dakujem za pomoc
_________________ He who laughs last has not yet heard the bad news.
-- Bertolt Brecht
medicine student |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
problem je v prazdnych znakoch, ktore mas v xml subore, skus si cely ten obsah ulozit do jedneho riadku a uvidis prekvapivy vysledok
_________________ 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.01.06 Prihlásený: 25.12.21 Príspevky: 366 Témy: 47 | 47 Bydlisko: TT |
nie je na to nejaka funkcia, ktora by tento problem riesila?
_________________ He who laughs last has not yet heard the bad news.
-- Bertolt Brecht
medicine student |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
skus si dat do funkcie data() niekde riadok
Kód: $data = trim($data);
a $data vypisuj len vtedy, ked daco obsahuje...
alebo pouzivaj ine funkcie na parsovanie xml
_________________ 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ý: 22.11.07 Prihlásený: 26.02.10 Príspevky: 253 Témy: 1 | 1 Bydlisko: 127.0.0.1 |
naco robit veci zlozito? tvoj priklad by sa dal pomocou simplexml napisat lahsie a efektivnejsie. priklad:
Kód: $xml = simplexml_load_file('tvoj_xml.subor'); foreach($xml->books->childrens() as $child) { echo $child->author . ' - ' . $child->title . '<br />'; }
nieje to krajsie? samozrejme formatovanie vystupu si nastavis ako chces.
_________________ PODPIS BOL ZMAZANY Z DOVODU NERESPEKTOVANIA PRAVIDIEL FORA!!!
Je povolených max. 5 riadkov s veľkosťou písma 9 (rozlíšenie 1280x1024px).
Sprava pre vedenie fora: ake nerespektovanie pravidiel. ved som mal v podpise citaciu na 2 riadky omg? lol? no a este jabber ale to neni moja chyba ze tu nemate input aj na jabber... |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
nenapadlo ti, ze moze mat PHP4? lebo mne hej, a preto som mu tuto moznost neponukol
_________________ 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.01.06 Prihlásený: 25.12.21 Príspevky: 366 Témy: 47 | 47 Bydlisko: TT |
no, mal by som mat php5, ale neviem ked:
Fatal error: Call to undefined method SimpleXMLElement::childrens()
_________________ He who laughs last has not yet heard the bad news.
-- Bertolt Brecht
medicine student |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
namiesto $xml->books->childrens() si daj $xml->books->book
_________________ 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.01.06 Prihlásený: 25.12.21 Príspevky: 366 Témy: 47 | 47 Bydlisko: TT |
aj ked som to zmenil, vypisalo Fatal error: Call to undefined method SimpleXMLElement::book()
_________________ He who laughs last has not yet heard the bad news.
-- Bertolt Brecht
medicine student |
|
Registrovaný: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 | 96 |
tak daj kód
|
|
Registrovaný: 01.01.06 Prihlásený: 25.12.21 Príspevky: 366 Témy: 47 | 47 Bydlisko: TT |
Ved kod mam od vl4kn0 a Stenleyho :
Kód: <? $xml = simplexml_load_file('kniha.xml'); foreach($xml->books->book() as $child) { echo $child->author . ' - ' . $child->title . '<br />'; } ?>
//editovane, zdrojaky do Code (stenley)
_________________ He who laughs last has not yet heard the bad news.
-- Bertolt Brecht
medicine student |
|
Registrovaný: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 | 96 |
Kód: <? $xml = simplexml_load_file('kniha.xml'); foreach($xml->books->book as $child) { echo $child->author . ' - ' . $child->title . '<br />'; } ?>
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
>jaji: ale ved tie zatvorky si tam nemal davat
Naposledy upravil stenley dňa 25.07.2008 15:03, celkovo upravené 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ý: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 | 96 |
sám si mu to písal
//editovane, necituj predchadzajuci post (stenley)
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
co som napisal? napisal som mu, aby ten retazec zo zatvorkami nahradil retazcom bez zatvoriek...
_________________ 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ý: 22.11.07 Prihlásený: 26.02.10 Príspevky: 253 Témy: 1 | 1 Bydlisko: 127.0.0.1 |
nj ved tam nema byt $xml->book->childrens() ale $xml->book->children(). anglictina nepusti
stenley: kto dnes pouziva php4? :-/
_________________ PODPIS BOL ZMAZANY Z DOVODU NERESPEKTOVANIA PRAVIDIEL FORA!!!
Je povolených max. 5 riadkov s veľkosťou písma 9 (rozlíšenie 1280x1024px).
Sprava pre vedenie fora: ake nerespektovanie pravidiel. ved som mal v podpise citaciu na 2 riadky omg? lol? no a este jabber ale to neni moja chyba ze tu nemate input aj na jabber... |
|
Registrovaný: 01.01.06 Prihlásený: 25.12.21 Príspevky: 366 Témy: 47 | 47 Bydlisko: TT |
tento kod Kód: <? $xml = simplexml_load_file('kniha.xml'); foreach(($xml->books->book) as $child) { echo $child->author . ' - ' . $child->title . '<br />'; } ?>
pre zmenu hadze chybu : Warning: Invalid argument supplied for foreach()
_________________ He who laughs last has not yet heard the bad news.
-- Bertolt Brecht
medicine student |
|
Registrovaný: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 | 96 |
Kód: <? $xml = simplexml_load_file('kniha.xml'); foreach(($xml->book) as $child) { echo $child->author . ' - ' . $child->title . '<br />'; } ?>
do tretice všetko najlepšie
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
>vl4kn0: kto dnes pouziva php4? by sa sa velmi cudoval, aky su niektori admini v tomto "nedisciplinovani"... niektori maju skripty este v PHP3 a prechod na PHP5 by mohol znamenat znefunkcnenie niektorych casti kodu... a kedze to v php3/4 funguje, netrapia sa tym, aby to prerobili...
//takze nakoniec som to vyskusal a takto to funguje:
Kód: <?php $xml = simplexml_load_file('kniha.xml'); foreach($xml as $book) { echo $book->author.' - '.$book->title . '<br />'; } ?>
Naposledy upravil stenley dňa 25.07.2008 21:32, celkovo upravené 2
_________________ 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ý: 22.11.07 Prihlásený: 26.02.10 Príspevky: 253 Témy: 1 | 1 Bydlisko: 127.0.0.1 |
to je jedno co tam zmenit/ zmaz obydve. spravne tam ma byt
Kód: $xml = simplexml_load_file('kniha.xml'); foreach($xml->books->children() as $child) { echo $child->author . ' - ' . $child->title . '<br />'; }
//si si na 100% isty? (stenley)
_________________ PODPIS BOL ZMAZANY Z DOVODU NERESPEKTOVANIA PRAVIDIEL FORA!!!
Je povolených max. 5 riadkov s veľkosťou písma 9 (rozlíšenie 1280x1024px).
Sprava pre vedenie fora: ake nerespektovanie pravidiel. ved som mal v podpise citaciu na 2 riadky omg? lol? no a este jabber ale to neni moja chyba ze tu nemate input aj na jabber... |
|
Registrovaný: 01.01.06 Prihlásený: 25.12.21 Príspevky: 366 Témy: 47 | 47 Bydlisko: TT |
Jupi, stenley, ide to!
diky vsetkym za ochotu babrat sa s tym, najma stenleymu .
Od vlakna mi to hadze chybu, (main).
_________________ He who laughs last has not yet heard the bad news.
-- Bertolt Brecht
medicine student |
|
Registrovaný: 16.01.08 Prihlásený: 27.03.13 Príspevky: 641 Témy: 144 | 144 Bydlisko: Žilina |
caute,
riesim jednu stranku, ktora si ma brat veci z XML do databazy.
mam vsak problem:
moje PHP
Kód: <?php $xml = simplexml_load_file('http://www.nieco.sk/generujxml.php?link=0e041cgd465fg'); foreach($xml as $produkt) { echo $produkt->Cennik->product->cena.' - '.$produkt->Cennik->product->nazov. '<br />'; } ?> XML ( http://www.nieco.sk/generujxml.php?link=0e041cgd465fg - to je len priklad): Kód: <Cennik> <product> <cena>500</cena> <nazov>Koleso</nazov> </product> <product> <cena>1500</cena> <nazov>Koberec</nazov> </product> </Cennik
vystup by mal byt:
Citácia: 500 - Koleso 1500 - Koberec mne to vsak vyhodi: Citácia: - -
Neviete kde je problem?
DIK.
_________________ Mac Book Pro 15.4", CPU: Intel Core 2 Duo 2.8 GHz, RAM: 4GB DDR3, HDD: 500 GB, VGA: 512MB GDDR3, OS: Mac OS X Lion; Mobil: HTC ONE S |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
podla vsetkeho mas chybny tento zapis: $produkt->Cennik->product
spravne by malo byt: $produkt->product
_________________ 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ý: 16.01.08 Prihlásený: 27.03.13 Príspevky: 641 Témy: 144 | 144 Bydlisko: Žilina |
som to skusil a nepomohlo.
stale:
-
-
_________________ Mac Book Pro 15.4", CPU: Intel Core 2 Duo 2.8 GHz, RAM: 4GB DDR3, HDD: 500 GB, VGA: 512MB GDDR3, OS: Mac OS X Lion; Mobil: HTC ONE S |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
jaj, sorry, pomylil som sa:
Kód: foreach($xml->product as $produkt) { echo $produkt->cena.' - '.$produkt->nazov. '<br />'; }
niekedy je dobre pozriet si, co obsahuje premenna $xml
_________________ 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ý: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 | 96 |
Ja sa vrátim k tomu php4, fakt je ešte dosť používané. Počul som už dosť zlých názorov na php5, že tam nefunguje to, hento, ono, tamto... že je pomalšie... Môžu mať pravdu, nemám to otestované ani overené, ale brutálne je keď si niekto drží ešte aj v rámci php4 starú verziu, nejaké php 4.1.niečo, to už si fakt pýta průser. Málokto má asi 4.4.9 a málokto o nej zrejme aj vie.
V jednej firme pri pohovore mi povedal týpek, že "tuším je už nejaké novšie php" Ja na to, že "áno, php6, ale ešte vo vývoji" a on "už je aj 6?" Asi nemal prehlad...
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! |
|
Registrovaný: 16.01.08 Prihlásený: 27.03.13 Príspevky: 641 Témy: 144 | 144 Bydlisko: Žilina |
stenley,
pomohlo to a uz to aj frci.
DIK.
stenley,
prosim ta, este ma napadla jedna vec. ako zistim pocet $produkt-ov (v mojom priklade boli 2)?
DIK.
//pouzivaj edit (stenley)
_________________ Mac Book Pro 15.4", CPU: Intel Core 2 Duo 2.8 GHz, RAM: 4GB DDR3, HDD: 500 GB, VGA: 512MB GDDR3, OS: Mac OS X Lion; Mobil: HTC ONE S |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
_________________ 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ý: 16.01.08 Prihlásený: 27.03.13 Príspevky: 641 Témy: 144 | 144 Bydlisko: Žilina |
jasne, edit ;-)
teraz to vyzera takto:
Kód: $xml = simplexml_load_file('http://www.nieco.sk/generujxml.php?link=0e041c1fgvbdfgdfg'); $pocet=count($xml->product); echo "Počet produktov: ".$pocet."<br />"; foreach($xml->product as $produkt) { echo $produkt->cena.' - '.$produkt->nazov. '<br />'; }
vypis produktov a ich cien je uz v poriadku, no $pocet je vzdy 1 (podla horeuvedeneho prikladu maju byt 2).
DIK.
_________________ Mac Book Pro 15.4", CPU: Intel Core 2 Duo 2.8 GHz, RAM: 4GB DDR3, HDD: 500 GB, VGA: 512MB GDDR3, OS: Mac OS X Lion; Mobil: HTC ONE S |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
mno neviem, mne to vypisuje spravne (skopceny tvoj kod, zmenena len adresa suboru)
postni sem, co ti vypisalo print_r($xml)
_________________ 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 |
|
Stránka: 1 z 2
| [ Príspevkov: 33 ] | 1, 2 |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v PHP, ASP | 3 | 420 | 26.12.2012 18:32 shaggy | | v PHP, ASP | 4 | 488 | 29.09.2010 20:36 stenley | | v PHP, ASP | 4 | 877 | 12.04.2011 14:22 general667 | | v PHP, ASP | 1 | 960 | 27.03.2007 19:16 qacer | | v PHP, ASP | 3 | 654 | 01.05.2010 8:47 stenley | | v PHP, ASP | 2 | 747 | 26.03.2010 15:25 d0.0b | | v PHP, ASP | 6 | 416 | 28.04.2013 22:59 shaggy | | v PHP, ASP | 3 | 314 | 08.12.2012 21:06 stenley | | v PHP, ASP | 2 | 340 | 28.04.2013 22:26 Ďuri | | v Ostatné | 6 | 1521 | 29.07.2008 12:17 stenley | | v PHP, ASP | 1 | 485 | 30.10.2015 8:17 BX | | v PHP, ASP | 12 | 765 | 17.03.2010 14:53 Broko71 | | v PHP, ASP | 7 | 1056 | 08.11.2007 15:47 cassyopea | | v HTML, XHTML, XML, CSS | 0 | 501 | 28.10.2007 10:49 cassyopea | | v PHP, ASP | 5 | 424 | 21.11.2017 19:56 BX | | v HTML, XHTML, XML, CSS | 1 | 920 | 16.12.2011 16:49 Ďuri |
|