Autor | Zpráva | ||
---|---|---|---|
De.Li Profil * |
#1 · Zasláno: 25. 10. 2007, 14:09:04
Prosim pomuze mi nekdo z nasledujicim problemem???
Pouzivam XMLHttpRequest pro nacteni XML souboru. Ve FF i Opere vse funguje jenom IE nacte XML ale dale ho uz JS nezpracovava. script.js: function vytvorHttpRequest() { if (window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { } } } } function nacti(url) { otviram(); vytvorHttpRequest(); xmlHttp.open('GET', url, true); xmlHttp.onreadystatechange = zmenaStavu; xmlHttp.send(null); } function zmenaStavu() { if (xmlHttp.readyState == 4) { if (xmlHttp.status == 200) { var poleSeznam = new Array; var poleFilmu = new Array; var xml = xmlHttp.responseXML; // dopocad to bezi ok poleSeznam = xml.getElementsByTagName('seznam'); // tady uz se rozchazi ie v poli se // nenachazi ani jeden prvek poleFilmu = xml.getElementsByTagName('film'); // a tady taky ne zpracujFilmy(poleFilmu); } } } struktura XML <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE seznam [ <!ELEMENT seznam (film+)> <!ELEMENT film (kategorie,nazev,reziser+,rok, zanr+,obsah)> <!ELEMENT kategorie (#PCDATA)> <!ELEMENT nazev (original,cesky)> <!ELEMENT cesky (#PCDATA)> <!ELEMENT original (#PCDATA)> <!ELEMENT reziser (#PCDATA)> <!ELEMENT rok (#PCDATA)> <!ELEMENT zanr (#PCDATA)> <!ELEMENT obsah (#PCDATA)> ]> <seznam> <film>...</film> <film>...</film> </seznam> PROSIM PORADTE |
||
Chamurappi Profil |
#2 · Zasláno: 25. 10. 2007, 14:25:24
Reaguji na De.Li:
1) Je ten XML zdroj dodán s příslušným MIME typem? Tedy nejlépe „application/xml“? 2) Proč je v něm <!DOCTYPE>? Jestli nepoužíváš vlastní obecné entity, pryč s ním. 3) Není v něm nějaký ošklivý znak? Problémy s kódováním češtiny nepozoruješ? Příznaky nasvědčují tomu, že Explorer vidí v dokumentu fatální chybu. 4) Což takhle dát si JSON? Na strukturovaná data není potřeba tak tučný formát, jako je XML. |
||
De.Li Profil * |
#3 · Zasláno: 25. 10. 2007, 15:18:59
Mas pravdu neco je spatne s tim XML. Pokud si nactu ciste jenom XML tak IE halsi:
Neočekávaný konec souboru Při zpracování prostředku http://www.deli.xf.cz/filmy/data.xml došlo k chybě. Řádek 1, pozice 1 & ale nemuzu prijit na to co je tam spatne, problemy s cestinou by se projevily i v jinych prohlizecich. |
||
habendorf Profil |
#4 · Zasláno: 25. 10. 2007, 15:56:49
Problém je v řádku
<!ENTITY amp '&'> |
||
Chamurappi Profil |
#5 · Zasláno: 25. 10. 2007, 15:58:02 · Upravil/a: Chamurappi
Reaguji na De.Li:
„Neočekávaný konec souboru Při zpracování prostředku“ Ta hláška je přesná, Explorer skutečně nedostává kompletní XML zdroj. A není sám. Nevím, proč někomu dorazí všechno a někomu ne. Update: Chybná hypotéza, Web-Sniffer píše „Only first 100 KiB loaded“. „problemy s cestinou by se projevily i v jinych prohlizecich“ Ne nezbytně. Některé fatální chyby jsou v Mozille i Opeře tolerovány. Dokonce je jedna ignorovaná v nich i v Exploreru: Kódování tvého XML totiž má být podle specifikace „us-ascii“, nehledě na to, co tvrdíš v XML deklaraci. MIME typ „text/xml“ ho totiž má dané jako výchozí. Ale zrovna tohle nebude příčina problému. |
||
peta Profil |
#6 · Zasláno: 25. 10. 2007, 16:19:45
De.Li
Mozna by bylo dobre udelat vystup jako TXT a dat sem odkaz. Pak by se dalo resit to, jestli mu v PHP posilas hlavicku header() pro XML nebo jinou. JS na to opravdu pro IE nestaci, protoze nezna funkci pro nastaveni hlavicky pro ajax. Kazdopadne FF tuhle funkci zna a ty mu ji tam nepises. Zkus porovnat s prikladem: http://www.volny.cz/peter.mlich/www.htm#msub13 ajax chat Ale nerucim za cestinu, od te doby jsem se k tomu uz nedostal. Kazdopadne by tam mela fungovat nahrazka pres iframe. A ted ani nevim, jestli to pouziva textResponse nebo XML. Podle mne tam do XML nepatri tyto veci: <?xml version="1.0" encoding="utf-8"?> <!-- deklarace DOCKTYPE --> <!DOCTYPE seznam [ <!ELEMENT seznam (film+)> <!ELEMENT film (kategorie,nazev,reziser+,rok, zanr+,obsah)> <!ELEMENT kategorie (#PCDATA)> <!ELEMENT nazev (original,cesky)> <!ELEMENT cesky (#PCDATA)> <!ELEMENT original (#PCDATA)> <!ELEMENT reziser (#PCDATA)> <!ELEMENT rok (#PCDATA)> <!ELEMENT zanr (#PCDATA)> <!ELEMENT obsah (#PCDATA)> <!ENTITY nbsp ' '> <!ENTITY quot '"'> <!ENTITY apos '''> <!ENTITY amp '&'> ]> <!-- struktura XML --> Po jejich smazani by to melo fungovat |
||
peta Profil |
#7 · Zasláno: 25. 10. 2007, 16:21:37
a chybi ti tam Shrek 3 :)
|
||
Chamurappi Profil |
#8 · Zasláno: 25. 10. 2007, 17:16:43 · Upravil/a: Chamurappi
Reaguji na De.Li:
Tak habendorf má pravdu, problém je skutečně v řádku: <!ENTITY amp '&'> Stejně dopadneš, když se pokusíš deklarovat entitu s obsahem „<“ nebo „]]>“. Zajímavé. Někdy prozkoumám, jaké má být správné chování. Výchozí pětici entit „lt“, „gt“, „amp“, „apos“ a „quot“ není třeba deklarovat, jsou v XML napevno. Má dřívější diagnóza ohledně nedotaženosti dokumentu je také správná, akorát se kvůli tomu ampersandu zatím neprojevuje. (Update: tak správná nebyla a ampersand asi způsobil jediný její symptom) |
||
De.Li Profil * |
#9 · Zasláno: 25. 10. 2007, 17:51:03
Jenze ono to dela i po kompletnim smazani <!DOCTYPE seznam [ .. ]>. Vztvoril sem novy zkusebni soubor http://www.deli.xf.cz/filmy/data.xml a ten to dela taky neni v nem diakritika a ani jine hloupe znaky, tak co delám spatne???
to peta Shrek 3 bude neni tam jeste vsechno vypsane :-) |
||
De.Li Profil * |
#10 · Zasláno: 25. 10. 2007, 18:04:08
Tak už to jde děkuji všem kteří pomohli!!!
Snad ještě maličkost nevite jak seřadit pole podle české abecedy tak aby to házelo Č za C atd. a ne až někam na konec???? |
||
peta Profil |
#11 · Zasláno: 25. 10. 2007, 20:01:26 · Upravil/a: peta
De.Li
Nove tema = zalozeni noveho tematu. muzes zacit u serazeni tabulky http://peter-mlich.wz.cz/x/ww/js/jspriklady.htm tam ale pocitam u sloupce .000 s tim, ze vsechna cisla konci .xyz . kdyby tam hodil nekdo 123 bez tecky a 111.000 , tak 123 bude nad tim. Tam bys musel zrejme odstranit jen carku a kazde cislo vynasobit *1 . A tak nejak podobne postupujes pro retezce. Akorat s ch bude asi problem... Zrovna ted mne nenapada reseni Ja bych to mozna ale seradil uz v PHP nebo SQL. Uz ti teda ten XML chodi, jo, kdyz to pises. V cem byl problem? |
||
Časová prodleva: 3 dny
|
|||
De.Li Profil * |
#12 · Zasláno: 28. 10. 2007, 19:03:04
A cim by mohlo byt ze pokud je to XML delsi tak si ho IE nacte jenom cast a pak zahlasi ze nektere elementy nebyly radne uzavreny.
|
||
Chamurappi Profil |
#13 · Zasláno: 28. 10. 2007, 20:20:52 · Upravil/a: Chamurappi
Reaguji na De.Li:
Prosil bych živou ukázku. Nebylo by opravdu jednodušší použít JSON místo XML? |
||
De.Li Profil * |
#14 · Zasláno: 28. 10. 2007, 21:47:15
To xml je tady http://deli.xf.cz/filmy/data.xml
S JSON nemam zkusenosti a navic bych musel prepsat celou tu databazi do cehoz se mi moc nechce. |
||
Časová prodleva: 17 let
|
0