Autor Zpráva
Mert
Profil
Zdravím,
prosim o pomoc s problémem, na který jsem narazil při parsování xml dat přes php.
Hlavička XML vypadá takto: <?xml version="1.0" encoding="UTF-16"?>(soubor je uložen v poznámkovém bloku s kódováním Unicode)
Text je uložen V CDATA.
 <![CDATA[<font color="#FFDF00"><b>Použití</b></font>
Stěnovými panely Acoustiroc® je možno dosáhnout výbornýchakustických podmínek, estetického vzhledu a tepelné izolacev průmyslových objektech, školních a sportovních zařízeních,restauracích, nemocnicích, chodbách a v každém prostředí, jehož stěny mají odolávat nárazům]]>


Výstup ale vypadá takto:
Použití Stěnovými panely Acoustiroc® je možno dosáhnout výbornýchakustických podmínek, estetického vzhledu a tepelné izolacev průmyslových objektech, školních a sportovních zařízeních,restauracích, nemocnicích, chodbách a v každém prostředí, jehož stěny mají odolávat nárazům


Jaké mám používat kódování nebo je chyba jinde?
Pls help
Alphard
Profil
Jaké mám používat kódování
jaké chceš, ale všude stejné, nebo si pomoci funkcí iconv()
nebo je chyba jinde?
nedostatek informací...
Mert
Profil
No tak php skript vypadá takto:
<?php
$xmlFileData = file_get_contents("acoustiroc.xml");
$xmlData = new SimpleXMLElement($xmlFileData);
foreach($xmlData->info->children() as $child) {
	print("<h2>" . $child . "</h2><br />");
	
}
?>


XML cca takto:
<info>
<pouziti src="">
        <![CDATA[<font color="#FFDF00"><b>Použití</b></font>
Stěnovými panely Acoustiroc® je možno dosáhnout výbornýchakustických podmínek, estetického vzhledu a tepelné izolacev průmyslových objektech, školních a sportovních zařízeních,restauracích, nemocnicích, chodbách a v každém prostředí, jehož stěny mají odolávat nárazům]]>
        </pouziti>
</info>


Jako prohlížeč používám Firefox, PHP a XML píšu v Dreamweavru (tam se vše zobrazuje koretně), ale při výstupu v Mozille to hodí výše zmíněný paskvil.
Nevím co víc bych k tomu dopsal. Pište prosím konkrétně, jaké info bych měl doplnit.
Mike8748
Profil
v skriptu ti chybi uvedeni kodovani vystupu

dej si pred to header('Content-type: text/html; charset=utf-16');

(pripadne misto utf16 spravny kodovani jaky tam mas pouzity v tom xml
Mert
Profil
Takže hlavičku XML mám
<?xml version="1.0" encoding="UTF-16"?>
(soubor uložen jako Unicode)

Skript vypadá následovně:
<?php
$xmlFileData = file_get_contents("acoustiroc.xml");
$xmlData = new SimpleXMLElement($xmlFileData);
header('Content-type: text/html; charset=UTF-16');
foreach($xmlData->info->children() as $child) {
	print("<h2>" . $child . "</h2><br />");
	
}
?>


nevložil jsem to někam blbě?
bukaj
Profil
Mert
soubor uložen jako Unicode
To ale neznamená, že je v UTF-16. Jseš si opravdu jistý, že jsi to ukládal výslovně jako UTF-16?

nevložil jsem to někam blbě?
Spíš bych řekl, že máš XML soubor v nějakém jiném kódovní, než myslíš. Zkus zaexperimentovat. Ono jedno bude dobře.
Mert
Profil
Zkus zaexperimentovat. Ono jedno bude dobře.
Skvělá rada :-) ... zkoušel jsem různé kombinace a když jsem nastavil vše na UTF-8, tak to fungovalo. Díky moc všem :-)
Davex
Profil
Mert
Prosím, smaž ten nesmyslný výstup v #5. Při pokusu o zobrazení této stránky v IE6 se stane to, že prohlížeč v kousnutém stavu vytíží procesor na 100 %.
Mert
Profil
Prosím, smaž ten nesmyslný výstup v #5. Při pokusu o zobrazení této stránky v IE6 se stane to, že prohlížeč v kousnutém stavu vytíží procesor na 100 %.
Hotovo :) sry

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: