| | |
Autor | Správa |
---|
Registrovaný: 01.01.06 Prihlásený: 25.12.21 Príspevky: 366 Témy: 47 Bydlisko: TT | Napísal jaji: 25.07.2008 8:13 | |
|
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 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 Bydlisko: TT | Napísal autor témy jaji: 25.07.2008 11:04 | |
|
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 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 Bydlisko: 127.0.0.1 | Napísal vl4kn0: 25.07.2008 13:18 | |
|
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 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 Bydlisko: TT | Napísal autor témy jaji: 25.07.2008 14:04 | |
|
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 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 Bydlisko: TT | Napísal autor témy jaji: 25.07.2008 14:44 | |
|
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 |
tak daj kód
|
|
Registrovaný: 01.01.06 Prihlásený: 25.12.21 Príspevky: 366 Témy: 47 Bydlisko: TT | Napísal autor témy jaji: 25.07.2008 14:57 | |
|
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 |
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 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 |
sám si mu to písal
//editovane, necituj predchadzajuci post (stenley)
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 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 Bydlisko: 127.0.0.1 | Napísal vl4kn0: 25.07.2008 15:56 | |
|
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 Bydlisko: TT | Napísal autor témy jaji: 25.07.2008 15:56 | |
|
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 |
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 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 Bydlisko: 127.0.0.1 | Napísal vl4kn0: 25.07.2008 16:30 | |
|
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 Bydlisko: TT | Napísal autor témy jaji: 25.07.2008 17:07 | |
|
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 Bydlisko: Žilina | Napísal max-m: 19.09.2008 13:01 | |
|
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 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 Bydlisko: Žilina | Napísal max-m: 19.09.2008 13:16 | |
|
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 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 |
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 Bydlisko: Žilina | Napísal max-m: 19.09.2008 13:40 | |
|
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 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 Bydlisko: Žilina | Napísal max-m: 19.09.2008 14:13 | |
|
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 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 |
|
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| PHP a XML v PHP, ASP | 1 | 921 | 27.03.2007 19:16 qacer | | PHP -> XML v PHP, ASP | 3 | 620 | 01.05.2010 8:47 stenley | | PHP a XML v PHP, ASP | 3 | 382 | 26.12.2012 18:32 shaggy | | XML v PHP v PHP, ASP | 4 | 458 | 29.09.2010 20:36 stenley | | PHP generovanie XML v PHP, ASP | 4 | 845 | 12.04.2011 14:22 general667 | | PHP a XML (problem) v PHP, ASP | 3 | 285 | 08.12.2012 21:06 stenley | | php v xml súbore v PHP, ASP | 2 | 314 | 28.04.2013 22:26 Ďuri | | XML v PHP - chyba v PHP, ASP | 2 | 725 | 26.03.2010 15:25 d0.0b | | PHP webservice XML-RPC v PHP, ASP | 6 | 386 | 28.04.2013 22:59 shaggy | | Import XML do MySQL pomocou PHP v PHP, ASP | 1 | 451 | 30.10.2015 8:17 BX | | otazka na parsovanie xml v php v PHP, ASP | 12 | 733 | 17.03.2010 14:53 Broko71 | | Tutorial/Program na Flash + PHP (+ XML) v Ostatné | 6 | 1487 | 29.07.2008 12:17 stenley | | transformacia xml a xsl pomocou php 5 v PHP, ASP | 7 | 1037 | 08.11.2007 15:47 cassyopea | | transformacia xml a xsl pomocou php 5 v HTML, XHTML, XML, CSS | 0 | 466 | 28.10.2007 10:49 cassyopea | | Php Script: XML -> CSV (Problém s 0 na začiatku) v PHP, ASP | 5 | 391 | 21.11.2017 19:56 BX | | Generovanie XML:Chybná analýza XML: žiadny prvok sa nenašiel v HTML, XHTML, XML, CSS | 1 | 881 | 16.12.2011 16:49 Ďuri |
| 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
|
|