LINUXSOFT.cz Přeskoč levou lištu

ARCHIV



   

> Diskuze: Poradna XML v PHP

XML v PHP
(link)
9.9.2008 21:26
Gaudentius
Věk: ( ~39 let)

Ahoj, potřeboval bych vytvořit dokument XML v php - kliknutím na xml.php aby se zobrazil xml dokument.

Mám tento kód:

<?php
header("Content-Type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"UTF-8\" ?> \n";




echo ("<obce>\n");

echo ("\t<obec>\n");
echo ("\t\t<psc>\n");
echo ("\t\t\t PSC \n");
echo ("\t\t</psc>\n");
echo ("\t\t<nazev>\n");
echo ("\t\t\t OBEC \n");
echo ("\t\t</nazev>\n");
echo ("\t</obec>\n");

echo ("</obce>\n");




?>

Ale vypíše mi to:

Chyba parsování XML: Na začátku externí entity chybí procesní instrukce xml
Adresa: http://127.0.0.1/xml.php
Číslo řádku 3, sloupec 1:<?xml version="1.0" encoding="UTF-8" ?>
^

Nevíte, prosím, kde dělám chybu - chci takto jednoduše vypsal xml. Díky :-)

Re: XML v PHP
(link)
10.9.2008 00:13
Aleš Hakl
Bydliště: Praha

Kouknete se, co presne je vystupem toho skriptu. To chybove hlaseni vypada, jako ze pochazi od prohlizece, ktery ten vystup nepovazuje za platne XML. "Externi entita" je XMLstina pro "soubor ktery obsahuje nejaky kus XML dokumentu", v typickem pripade cely dokument.

Sice nepravdepodobne ale presto voditko by mohlo byt to cislo radku: 3. Co je na tech dvou radcich pred tim? (me chapani XML je takove, ze i pokud jsou prazdne, tak by to mohlo vadit)

Re: XML v PHP
(link)
10.9.2008 17:39
Roman
Věk: ( ~56 let)
Generovanie XML by malo byť nasledovné a pritom samotný XML strom nemusí byť vypisovaný pomocou 'echo':

<?php

/* subor: xml.php */

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Transfer-Encoding: binary");
header("Content-Type: text/xml");
header("Content-Disposition: attachment; filename=\"nazov_suboru.xls\"");

echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";

?>
<obce>
   <obec>
      <psc>PSC</psc>
      <nazev>OBEC</nazev>
   </obec>
</obce>

Re: XML v PHP
(link)
11.9.2008 00:02
Aleš Hakl
Bydliště: Praha

Tak to mi tedy vysvetelete, jak s generovanim XML souvisi ty Cache-Control, a proc o tom vystupu prohlizeci tvrdite, ze je to priloha s nazvem koncicim na .xls. (a hlavne, jak se to s vyjimkou techto irelevantnich detailu od puvodniho kodu lisi)

Re: XML v PHP
(link)
11.9.2008 18:32
Roman
Věk: ( ~56 let)

Nuž, beriem späť že by generovanie malo byť nasledovné. Nie, nemusí a postačí ako je to v pôvodnom dotaze.

Cache-Control tam používam preto, lebo sa mi hlavne pri IE6 stalo, že pri opakovanom dotaze sa zobrazili predošlé dáta. Až po následnom refreshe alebo vymazaní dočasných súborov, boli aktuálne dáta. Neviem či je to správne, ale pri takomto použití som už žiadne také problémy nemal.

Súbor xls som použil len na ukážku. Dosť často generujem dáta do šablóny excelu, uloženej ako XML. Takto sa klientovi zobrazia dáta priamo v exceli a môže s nimi ihneď následne pracovať. Samozrejme, ak chce niekto iba čistý xml súbor, môže to vynechať.

Čo sa týka Vášho predošlého príspevku, asi máte pravdu s tým prázdnym riadkom na začiatku. Pokiaľ je na začiatku súboru pred '<?xml version="1.0" encoding="UTF-8"?>' akýkoľvek prázdny riadok, vráti to uvedenú chybu. Platí to aj vtedy ak je to php súbor a pred '<?php' je tiež prázdny riadok.

 

Re: XML v PHP
(link)
11.9.2008 18:48
Aleš Hakl
Bydliště: Praha

Jeste me napadla druha vec, ono je take mozne ze ten prohlizec ma v te chybove hlasce prohozene cislo sloupce a radku (coz si matne pamatuji, ze kdysi Gecko delalo) a neni to o tom ze tam je prazdny radek, ale o tom, ze tam nejaky uzasny editor jehoz autori zase jednou pochopili utf-8 vklada BOM.

Re: XML v PHP
(link)
11.9.2008 19:40
Roman
Věk: ( ~56 let)

S tým UTF neviem. Vyskúšal som urobiť napríklad rovnaký súbor v UTF-8 formáte aj vo WINDOWS-1250. Použil som Dreamweaver, PSPad aj UltraEdit. A výsledok s chybou rovnaký.

Re: XML v PHP
(link)
11.9.2008 20:13
Aleš Hakl
Bydliště: Praha

No ja to myslel tak, ze i pokud tam ten prazdny radek neni, tak nektere uzasne editory (treba notepad z ledasktere verze windows) maji tendenci vkladat na zacatek utf-8 souboru sekvenci 0xef 0xbb 0xbf, ktera by mohla vadit.

A pohled do specifikace rika, ze wellformed XML 1.1 musi zacinat sekvenci '<?xml version="1.1"' (dusledek produkci 1, 22, 23 a 24), v pripade XML 1.0 neni XML deklarace povinna, ale pokud je uvedena tak stejne musi byt ihned na zacatku souboru, jinak soubor zacina volitelnym prazdnym mistem (ovsem pouze ascii, tj. U+0009, U+000a, U+000d nebo U+0020) za nimz nasleduje '<', ktere uvozuje komentar, procesni instrukci ci korenovy element (1, 22, 23, 24, 27 + definice zminenych prvku, ktera neni tak zajimava).

Dusledek tedy je, ze prazdne radky vadi pouze tehdy, jsou-li nasledovany XML deklaraci. Zato 0xef 0xbb 0xbf coz je utf-8 pro U+FEFF vadi vzdy, protoze ten znak sice je vicemene mezera, nicmene nikoli z pohledu XML, kde je povazovan za textova data, ktera se pochopitelne mimo element vyskytovat nesmi.

Re: XML v PHP
(link)
12.9.2008 07:43
Aleš Hakl
Bydliště: Praha

Jeste je mozna potreba zduraznit, ze pokud U+FEFF na zacatku je, tak pokud to zobrazite jako text, pravdepodobne tam stejne nic neuvidite, maximalne se na zacatku prvniho radku bude kurzor chovat "zvlastne", ale pravdepodobne ani to ne. Je potreba se do souboru podivat necim, co unicode nerozumi (idealne treba hexdump -C soubor.php | head).

DISKUZE

XML v PHP 9.9.2008 21:26 Gaudentius
  |- Re: XML v PHP 10.9.2008 00:13 Aleš Hakl
  L Re: XML v PHP 10.9.2008 17:39 Roman
    L Re: XML v PHP 11.9.2008 00:02 Aleš Hakl
      L Re: XML v PHP 11.9.2008 18:32 Roman
        L Re: XML v PHP 11.9.2008 18:48 Aleš Hakl
          L Re: XML v PHP 11.9.2008 19:40 Roman
            L Re: XML v PHP 11.9.2008 20:13 Aleš Hakl
              L Re: XML v PHP 12.9.2008 07:43 Aleš Hakl




Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

28.11.2018 23:56 /František Kučera
Prosincový sraz spolku OpenAlt se koná ve středu 5.12.2018 od 16:00 na adrese Zikova 1903/4, Praha 6. Tentokrát navštívíme organizaci CESNET. Na programu jsou dvě přednášky: Distribuované úložiště Ceph (Michal Strnad) a Plně šifrovaný disk na moderním systému (Ondřej Caletka). Následně se přesuneme do některé z nedalekých restaurací, kde budeme pokračovat v diskusi.
Komentářů: 1

12.11.2018 21:28 /Redakce Linuxsoft.cz
22. listopadu 2018 se koná v Praze na Karlově náměstí již pátý ročník konference s tématem Datová centra pro business, která nabídne odpovědi na aktuální a často řešené otázky: Jaké jsou aktuální trendy v oblasti datových center a jak je optimálně využít pro vlastní prospěch? Jak si zajistit odpovídající služby datových center? Podle jakých kritérií vybírat dodavatele služeb? Jak volit vhodné součásti infrastruktury při budování či rozšiřování vlastního datového centra? Jak efektivně datové centrum spravovat? Jak co nejlépe eliminovat možná rizika? apod. Příznivci LinuxSoftu mohou při registraci uplatnit kód LIN350, který jim přinese zvýhodněné vstupné s 50% slevou.
Přidat komentář

6.11.2018 2:04 /František Kučera
Říjnový pražský sraz spolku OpenAlt se koná v listopadu – již tento čtvrtek – 8. 11. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma umění a technologie, IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář

4.10.2018 21:30 /Ondřej Čečák
LinuxDays 2018 již tento víkend, registrace je otevřená.
Přidat komentář

18.9.2018 23:30 /František Kučera
Zářijový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 20. 9. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář

9.9.2018 14:15 /Redakce Linuxsoft.cz
20.9.2018 proběhne v pražském Kongresovém centru Vavruška konference Mobilní řešení pro business. Návštěvníci si vyslechnou mimo jiné přednášky na témata: Nejdůležitější aktuální trendy v oblasti mobilních technologií, správa a zabezpečení mobilních zařízení ve firmách, jak mobilně přistupovat k informačnímu systému firmy, kdy se vyplatí používat odolná mobilní zařízení nebo jak zabezpečit mobilní komunikaci.
Přidat komentář

12.8.2018 16:58 /František Kučera
Srpnový pražský sraz spolku OpenAlt se koná ve čtvrtek – 16. 8. 2018 od 19:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát jsou tématem srazu databáze prezentaci svého projektu si pro nás připravil Standa Dzik. Dále bude prostor, abychom probrali nápady na využití IoT a sítě The Things Network, případně další témata.
Přidat komentář

16.7.2018 1:05 /František Kučera
Červencový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 7. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát bude přednáška na téma: automatizační nástroj Ansible, kterou si připravil Martin Vicián.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

31.7.2023 14:13 / Linda Graham
iPhone Services

30.11.2022 9:32 / Kyle McDermott
Hosting download unavailable

13.12.2018 10:57 / Jan Mareš
Re: zavináč

2.12.2018 23:56 / František Kučera
Sraz

5.10.2018 17:12 / Jakub Kuljovsky
Re: Jaký kurz a software by jste doporučili pro začínajcího kodéra?

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2024) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze