formatul xml
DESCRIPTION
Formatul XML (sau eXtensible Markup Language)este un meta-"limbaj de marcare" recomandat de Consorţiul World Wide Web pentru crearea de alte limbaje de marcare, cum ar fi XHTML, RDF, RSS, MathML, SVG, OWL etc. Aceste limbaje formează familia de limbaje XML. Meta-limbajul XML este o simplificare a limbajului SGML (din care se trage şi HTML) şi a fost proiectat în scopul transferului de date între aplicaţii pe internet. XML este acum şi un model de stocare a datelor nestructurate şi semi-structurate în cadrul bazelor de date native XML.TRANSCRIPT
-
Formatul XML
Formatul XML (sau eXtensible Markup
Language)este un meta-"limbaj de marcare"
recomandat de Consoriul World Wide Web
pentru crearea de alte limbaje de marcare, cum
ar fi XHTML, RDF, RSS, MathML, SVG, OWL
etc. Aceste limbaje formeaz familia de limbaje
XML.
Meta-limbajul XML este o simplificare a
limbajului SGML (din care se trage i HTML) i
a fost proiectat n scopul transferului de date
ntre aplicaii pe internet.
XML este acum i un model de stocare a
datelor nestructurate i semi-structurate n
cadrul bazelor de date native XML.
Un exemplu de date n format XML este urmtorul:
5th element
actiune
Enya
Videoclipuri
The Missing
actiune
Care nu este altceva decat o colectie de DVD-uri. Colectia de DVD-uri, adic
datele aa cum sunt ele expuse n exemplul de mai sus, poate fi salvat ntr-
un fiiser cu extensia .xml . Facei acest lucru dup care deschidei fiierul
(dvd.xml) obinut cu browserul dumneavoastr (Firefox is the best ;)).
-
Browserul nu numai c v afieaz datele n form structurat dar v permite
expandarea sau colapsarea diverselor noduri dup bunul plac. n cazul n
care fiierul nu este deschis de ctre browser, probabil ai alterat codul expus
mai sus.
Dac fisierul s-a deschis fara probleme este timpul sa trecem la urmatorul
pas: adaugarea unui XSL (eXtended Style Sheet) fisierului. XSL-ul este un
XML mai special care atasat unui fisier XML face ca acesta sa fie prelucrat in
diverse moduri (de exemplu schimbarea unui XML in alt XML sau schimbarea
unui XML intr-un HTML).
Exemplul nostru de fisier XSL va transforma datele din XMLul de mai sus
avand ca rezultat un fisier (tot XML) dar care paote fi inteles de catre browser
si parsat ca si cum ar fi un fisier HTML. Pentru a adauga fisierul XSL in XML
mai trebuie adaugat ceva... Schimbati antetul XMLului astfel incat acesta sa
arata astfel:
5th element
actiune
..............................
Fisierul XSL trebuie sa se numeasca "dvd.xsl" asa cum apare in noua linie
adaugata fisierului XML si va contine urmatorul cod:
Lista DVDuri
My DVD Collection
No.
Titlu
-
Tip
Daca ati reusit pana aici, inainte putin mai este...
cel mai simplu actionScript pe care l putei folosi pentru ncrcarea i afiarea
XMlului de mai sus este:
var xml_obj:XML = new XML();
xml_obj.load("dvd.xml");
xml_obj.onLoad=function(){
-
trace (this);
}
Variabila xml_obj reine toat structura arborescent a unui obiect de tip XML.
Deocamdat n aceast variabil nu se afl nimic i din acest motiv vom dor
s ncrcm coninutul fiierului extern dvd.xml.
Dup cum tii n Internet sunt latene destul de mari i nun e putem atepta
s avem coninutul fiierului ncrcat n variabila xml_obj chiar n urmtoare
instruciune care se afl dup load. Din acest motiv nu vom folosi obiectul
(xml_obj) dect dup ce ne vom asigura c n acesta s-a ncrcat correct
coninutul fiierului. (Funcia care trateaz acest lucru este onLoad.)
Comanda trace nu face altceva dect s afieze coninutul variabilei xml_obj
deci obiectul XML.
Problema care apare este c Flashul nu poate prelucra un obiect Flash dac
acesta conine spaii albe (whiteSpaces). Din acest motiv vom folosi
proprietatea ignoreWhite i-I vom atribui valoarea de adevr True, linia
urmtoare va fi scris imediat dup comanda de ncrcare a fiierului
dvd.xml.
xml_obj.ignoreWhite = true;
Putem s facem lucruri mai interesante cu XMLul dect doar s l afim. De
exemplu n funcia onLoad putei afla cte DVDuri sunt n colecie:
trace ("Colectia contine: "+this.firstChild.childNodes.length+"
DVD-uri.");
Astfel codul nostru devine:
var xml_obj:XML = new XML();
xml_obj.load("dvd.xml");
xml_obj.ignoreWhite = true;
xml_obj.onLoad=function(){
trace ("Colectia contine: "+this.firstChild.childNodes.length+"
DVD-uri.");
}
-
Sa preluam lista si sa afim pe rnd titlurile (evident ntr-un FOR):
var xml_obj:XML = new XML();
xml_obj.load("dvd.xml");
xml_obj.ignoreWhite = true;
xml_obj.onLoad=function(){
for (i=0;i
-
if
(this.firstChild.childNodes[i].childNodes[1].firstChild.nodeValue ==
"actiune") {
trace("Film de actiune:
"+this.firstChild.childNodes[i].childNodes[0].firstChild.nodeValue+".")
;
}
}
};
V las pe dumneavoastr s nelegei acest ultimo cod i n final vom face o
afiare frumoas a listei de filme:
var xml_obj:XML = new XML();
xml_obj.load("dvd.xml");
xml_obj.ignoreWhite = true;
xml_obj.onLoad = function() {
_root.createTextField("filme", 0, 100, 100, 400, 300);
var formatare = new TextFormat("Tahoma", 11);
var tabs = new Array(0,150);
formatare.tabStops = tabs;
_root.filme.text = "Nume Film\tTip Film\n";
for (i=0; i