xml parsning och otrevliga tecken

Tråden skapades och har fått 4 svar. Det senaste inlägget skrevs .
1

ok, 99mac har lite roliga saker på gång och jag tog på mig uppgiften att fixa en xml parser för en feed vi får. Efter att jag äntligen fick tid till att hackra ihop en fullt fungerande xml parser i php, upptäcker jag att dom som skickar xml'n pajer saker ordentligt eftersom dom inte verkar skicka datan som UTF-8 fast dom har deklarerat xmln som sådan.

Här är xml filen ifråga (som .gz). Jag har testat läsa den som allt ifrån iso-latin-1 till hebreiska både med php och bbedit, jag har testat ersätta hex-värden och alla andra tricks i boken.
Men nog fan får jag inte rätt på det! Så antingen missar jag något vitalt, eller också finns det någon annan där ute som kan komma på en lösning?

Jag tog och läste in filen i en hex editor och såg att å representerades som tecknen EF BF BD i hex. Problemet är att även ä och ö skrevs med samma hex värde så som jag ser det är det fel på datan du får och därmed är det inte mycket du kan göra än att ersätta å, ä och ö med något annat tecken, t.ex * eller ?.

Om du nu inte vill skriva en intelligent modul som matchar orden med skräptecken mot en svensk ordlista

Joakim

precis. Problemet är att dom som skickar ut datan tydligen inte kan skicka iväg den i det förmatet som dom själva har specificerat, vilket ju är tråkigt. Tydligen ska det inte gå att fixa heller :/

Inte för att det hjälper dig, men jag kollade upp vad CDATA är för något och det är en kod som talar om för parsern att den inte ska parsa text som är mellan [[ och ]].

Ett (dumt) exempel, CDATA[[ Hej & hå, en <tag>]] kommer inte att parsas utan behandlas som en tecken sträng, "Hej & hå, en <tag>".

Sen tycker jag det verkar konstigt att de placerar all text i sådana där CDATA

Joakim

CDATA är kort för characterdata och är användt helt korrekt i det här fallet, meningen med det är att man talar om för (tex) parsern att den inte skall behandla allt mellan CDATA[[ och ]] som xml utan som data, eller värden kanske är ett bättre ord. så att

http://www.w3schools.com/xml/xml_cdata.asp

1
Bevaka tråden