Introducere
E4X reprezinta o serie de clase si functionalitati destinate manipularii XML. Este foarte asemanatoare din punct de vedere structural cu XPath.
Pentru declaratie XML se va folosi:
var myXML:xml=< grupa >
< studenti >
< student id=”1212” >
< nume > Popescu < /nume >
< prenume > Mihai < /prenume >
< /student >
< student id=”1313” >
< nume > Ionescu < /nume >
< prenume > Adrian < /prenume >
< /student >
< /studenti >
< /grupa >
Pentru a accesa un nod al xml-ului se va folosi calea din arbore separand numele nodurilor prin ‘.’ . Se va intoarce lista de noduri asociata caii(un XMLList);
Sa presupunem ca avem de referit nodul grupa->studenti. Vom folosi ‘myXML.studenti’ pentru a-l referi. Nodul radacina nu este referit prin numele XML-ului(in cazul de fata nodul grupa este referit prin myXML).
Exemplu:
var myStudent:XMLList=myXML.studenti;
Pentru a selecta ca un XML si nu ca o lista folosim:
var myStudent:XMLList=myXML.studenti[0];
Atribute
Pentru a selecta un atribut al unui XML se foloseste operatorul @ sub forma @< nume >.
Exemplu:
var myId:String=myXML.studenti.student[1].@id //va returna id-ul celui de-al doilea student.
Intotdeauna atributele returnate vor fi stringuri. Conversiile se fac ulterior.
Filtrare
Uneori este necesar sa selectam un numar de noduri cu anumite proprietati.
Pentru aceasta se foloseste notatia (
Exemplu:
var numeStud:XMLList=myXML.student.student.(@id==”1212”)[0].nume;
Aceasta imi returneaza numele studentului cu id-ul “1212”. Se observa ca am folosit [0] dupa conditie. Motivul este ca dupa conditie va rezulta o lista de noduri care indeplinesc conditia(chiar daca lista e formata dintr-un singur nod). Rezultate pot fi referite printr-un indice. [
Operatorul appendChild()
Se foloseste pentru a adauga un nod la finalul unui XML.
Exemplu:
var newStud=< student id=”1414” >
< nume > Dascalu < /nume >
< prenume > Ion < /prenume >
< /student >
myXML.studenti[0].appendChild(newStud);
Atributele ce pot fi referite prin filtrare pot fi si modificate.
Exemplu:
newStud.nume[0]=”Dobrescu”;//va modifica Dascalu in Dobrescu
Niciun comentariu:
Trimiteți un comentariu