Starší komentáře ke článku: Základy použití XML v JavaScriptu

Zpět na článek | Úvodní stránka Interval.cz

Avatar

Autor komentáře: Scorpi

Datum vložení: 27.11.2002 0:50:22

Nacteni XML dokumentu - v MSIE OK - ale slysel jste neco o tom, ze existuje DOM Level 2 metoda document.implementation.createDocument()
diky ktere lze totez dosahnout v Mozille? V brzke dobe s pokracujici implementaci DOM bude totez s nejvetsi pravdepodobnosti umet i Explorer, Opera atd, takze bych doporucoval toto neignorovat...

Druha vec - zpracovani XML - hrube chyby! Ze Vam Explorer dovoli, aby patvar childNodes(0) vracel pouzitelny vystup, je problem Exploreru, norma W3C DOM hovori jasne - kolekce childNodes ma vlastnost length a metodu item(), pripadne Vam prohlizece dovoli pristupovat k ni jako k poli, tj. childNodes[0], ale Vas tvar je hruba chyba!
Stejne tak vlastnost text je microsofti extenze, soucasti W3C DOM neni (i kdyz samozrejme pokud se neco dela jen pro MSIE napr. na intranet, proc ne, ale delat toto pro web je to podle meho nazoru spatne).

Avatar

Autor komentáře: Scorpi

Datum vložení: 27.11.2002 1:04:51

Este uvedu jednoduchy priklad funkce pro nacteni XML dokumentu v Mozille (resp. NN6, 7):

var XMLdoc //globalni promenna pro uchovani nacteneho DOM XML dokumentu

//src je cesta k XML dokumentu(napr. "../adresar/dokument.xml") - musi byt ze stejne domeny!
function LoadXML(src) {
XMLdoc = document.implementation.createDocument('','',null)
XMLdoc.onload = zpracovaciFunkce //odkaz na funkci, ktera zpracuje XML po nacteni
XMLdoc.load(src)
}
function zpracovaciFunkce() {
//...kod funkce zpracujici nacteny xml (v globalni promenne XMLDoc)...
var root = XMLDoc.dokumentElement
//...atd...
}

Avatar

Autor komentáře: Scorpi

Datum vložení: 27.11.2002 1:09:36

XMLDoc.do<B><I>k</I></B>umentElement ma byt samozrejme XMLDoc.do<B><I>c</I></B>umentElement :-)

Avatar

Autor komentáře: Roman Pichlík

Datum vložení: 27.11.2002 8:11:55

Tenhle clanek nema hlavu ani patu, jen neskutecne mota pate pres devate skoro bych napsal, ze pokud bych XML neznal dokonale bych se zamotal.
Jake pouziti XML v JavaScriptu (grrr Jscriptu), ztrejme autor zamysle neco ve smyslu "Zpracovani xml dat pomoci skriptovani na strane klienta". BTW to nema nic co docineni ani JavaScriptem ,proste se vyuziva proprietrani "tlusta technologie" ActiveX. Kdyby si autor dal trochu prace, urcite by vedel ze DOM level 2 ve sve specifikaci podporuje praci s xml daty. Povetsino se bude stejne jednat pouze o transformaci xml2html, jiny duvod me nenapada a na tento ucel je lepsi pouzit xsl transformaci. Co dodat, jak autor postrehl je lepsi to zpracovat na serveru za tuto prevratnou myslenku mu tleskam. BTW hlavni vyhodu xml dat je oddeleni datove slozky od prezentacni, protoze xml data popisuji obsah nikoliv formu aproto ta prenositelnost

Avatar

Autor komentáře: Scorpi

Datum vložení: 27.11.2002 11:51:05

Souhlasim s tim, ze autor v clanku mota veci dohromady...JScript je v uloze zpracovani XML pouze "platforma", pro nacteni se pouziva v MSIE ActiveX komponenta, ktera inicializuje objekt o ktery se stara MSXML parser, ktery krome W3C DOM vyuziva i mnoho specifickych rozsireni...z clanku to vypada, jako kdyby to vsechno byl "ten Javascript"...
Ale na druhou stranu proti tomu, ze v MSIE se k nacteni XML pouziva ActiveX komponenta nemam nic - tohle rozsireni Microsoft implementoval jeste drive, nez byla k dispozici rozhrani DOM Level 2, ktere na podobne veci uz mysli...trochu chyba je, ze ani MSIE 6 jeste z normy DOM Level 2 neumi v podstate nic, no tak snad MSIE 7...
Ohledne XSLT: experimentoval jsem s tim na klientovi a bylo by to asi tak stejne pouzitelne, jako nacteni XML v DOM, ale problem je, ze MSIE 5 a 5.5 obsahuji starsi verzi MSXML parseru, ktery podporuje pouze starsi working draft XSL, ktere Microsoft implementoval jeste pred vydanim finalni verze XSLT - a samozrejme ze jsou mezi nimi odlisnosti vcetne jineho namespace...
Novy MSXML parser se samozrejme da doinstalovat, ale nutit k tomu uzivatele dost dobre nelze...ach jo.
Na klientovi mi jako jednoznacne lepsi zatim prijde nacteni XML a zpracovani pres DOM - IE 5 a 5.5 nedela (skoro) zadne problemy a s trochou dumyslu to pujde rozchodit i v Opere 7.
Jinak krome xml2html jsem nacteni XML a DOM transformaci pouzival pro jakysi vizualni editor XHTML dokumentu (postaveny na DOM), kdy veskere transformace probihaly prave v tom nactenem XML a po skonceni editace se upraveny XML zase poslal zpet na server.
Jinak velmi zajimava vec (pro IE i Mozillu!) je XMLHttpRequest, ktery umoznuje uz docela komfortni komunikaci v XML...

Avatar

Autor komentáře: Roman Pichlik

Datum vložení: 28.11.2002 8:01:20

<I> MSIE 5 a 5.5 obsahuji starsi verzi MSXML parseru, ktery podporuje pouze starsi working draft XSL, ktere Microsoft implementoval jeste pred vydanim finalni verze XSLT - a samozrejme ze jsou mezi nimi odlisnosti vcetne jineho namespace...</I> Uznavam to je docela problem, ale pokud si to nekde dohledate(jeho specifika) nevidim zadny problem vtom to pouzit.
<I> Na klientovi mi jako jednoznacne lepsi zatim prijde nacteni XML a zpracovani pres DOM - IE 5 a 5.5 nedela (skoro) zadne problemy a s trochou dumyslu to pujde rozchodit i v Opere 7. </I> Asi mate pravdu vtom, ze je to asi jedine croos-platform reseni, porovnam li to s moznostmi xsl a relativne jednodchym zapisem oproti psani k chybam nachylneho skriptu na strane klienta uz tak nevyhodne to zase neni, je to, ale samozrejme otazka pristupu oba dva se mi zdaji schudne

add. XMLHttpRequest je dobra vec

Avatar

Autor komentáře: Johny Over

Datum vložení: 27.11.2002 13:54:31

Jestlize tento clanek bereme jako uvod do problematiky tak se mi zda docela dobrej. Sam Jsem pred casem narazil na pripad, kdy bych neco takoveho pouzil v praxi ovsem nevedel jsem jak na to. Ted uz aspon vim, ze to jde. Takze diky za ten clanek a dik i za podnetne pripominky v diskusi. Jen houst a vetsi kapky!

Avatar

Autor komentáře: Jelc

Datum vložení: 28.11.2002 0:07:02

IE alespon s novejsi verzi XMLparseru dokaze nacist i XML dokument s jinou priponou nez XML, ale mozilla pri tom tezce zatuhavala, je to tak, ze to neumi?

Avatar

Autor komentáře: Scorpi

Datum vložení: 28.11.2002 16:36:27

Me to bez problemu funguje. Mozna, ze je problem v HTTP hlavicce Content-type (mela by byt text/xml). Jaka verze Mozilly? Jake je kodovani toho XML dokumentu?

Avatar

Autor komentáře: Jelc

Datum vložení: 28.11.2002 20:03:59

no to bylo tak, zkousel jsem to naposled v Moz.1, a nacital jsem (X)HTML validni dokument v kodovani windows-1250 a cast jsem prenasel do jineho dokumentu. Mozilla se uz pri tom nacitani pres neco.load('jmeno.htm') nadobro odmlcela a nesla vypnout jinak nez cez trojhmat. pokud byl nazev souboru 'jmeno.xml' probehlo vsechno v pohode.

Avatar

Autor komentáře: Ladislav Kafka

Datum vložení: 29.11.2002 21:50:13

Pred par mesici jsem zacal pracovat na implementaci tehle technologie do praxe, nicmene narazim na nekolik problemu, ktere usilovne resim :)
(kodovani dat na strane serveru do UTF-8, nebot JS je na strane klientske bere v UNICODE - uvazuji pripad, kdy se data neposilaji pres FORM, ale ctu je pouze pres 'myObject.value'.

Jako jedno z nejlepscich uplatneni vidim vytvoreni aplikacniho hlasovaciho systemku, viz: <a href='http://www.2tags.com/samples/vote/' target='_blank'>http://www.2tags.com/samples/vote/</a>
ktery by se v praxi vlozil nekolikrat do clanku, dosahlo by se tak velmi dobreho "FEEDBACK efektu--autor-ctenari".

V komercni praxi jsem uz XML/DOM/JS pouzil pri kontrole stavu dat na serveru. Pouhym stisknutim tlacitka (napr. 'Overit stav skladu'), a to bez nutnosti odesilat cely dotaz na server jako HTTP REQUEST, server odpovi vygenerovanym XML, ktere na klientovi zpracuju a vysledek pomoci DOM 'promitnu' na stranku.

Zpět na článek | Úvodní stránka Interval.cz