Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Info Coronavirus/Vaccinare vs Fake News

Sistem fotovoltaic 5kw off grid

Repunere minge in teren

Telefon de pe Amazon sau site rom...
 Digitalizare in domeniul Horeca

Asigurare la B7 cat mai ajunge?

cumparare masina inmatriculata in...

Certificat fiscal auto
 [CUM] Cum ati fi reactionat in ac...

Credex și altex fara dobanda

schimbare nume familie copil

Problema mașina de spalat ve...
 Ajutor incepator

Preturile https://www.colins.ro/ ...

LP - One Last Time

1 Decembrie 2022 - topic pentru d...
 

XML -tutorial in romana !

- - - - -
  • Please log in to reply
9 replies to this topic

#1
Sebastian

Sebastian

    Active Member

  • Grup: Members
  • Posts: 1,182
  • Înscris: 26.11.2001
O sa vorbim despre XML pt ca este foarte important in lucrul cu date !

Foarte multa lume spune ca nu poate zice exact ce este xml-ul ,dar poaate spune ce nu este...
Ei bine, XML ESTE o buna solutie de a stoca date intr-o structura usor de folosit.
XML se constituie intr-o strucutra - TREE(structura arborescenta)
O sa va dau un exemplu de structura arborescenta:
   Cd-uri----

                 |----Muzica---

                 |                  |-Aqua

                 |                  |-Antiloop

                 |

                 |----Programe---

                 |                     |-Web--

                 |                     |         |-Flash

                 |                     |-Audio--

                 |                     |          |-Sound Forge
Hai sa vedem cum ar arata aceasta structura in formatul XML:
<cduri>

            <muzica>

                      <aqua/>

                      <antiloop/>

             </muzica>

             <programe>

                           <web>

                                  <Flash/>

                           </web>      

                           <audio>

                                  <Sound Forge/>

                           </audio>

              </programe>

</cduri>
Cum vi se pare ?
Da ! Seamana cu html !Apare diferenta ca tagurile nu sunt restabilite !
Hai sa vedem inca o abordare XML:
<cduri>

     <muzica>

           <cd nume="Fastlane people" artist="antiloop"/>

           <cd nume="Aquarium" artist="aqua"/>

     </muzica>

<cduri>
Cum accesam datele ?
cduri este primul nod din structura.
El poate fi accesat prin xml.childNodes[0] sau prin xml.firstChild.
De ex ,daca am avea variabila xml cu numele "xml" ce ar cuprinde structura de mai sus si am da comanda trace(xml.firstChild)
Am primi ca rezultat:
<muzica>

           <cd nume="Fastlane people" artist="antiloop"/>

           <cd nume="Aquarium" artist="aqua"/>

     </muzica>
,adica tot ce este cuprins intre tagurile primului nod(<cduri> si </cduri>).
Daca am vrea sa accesam cd-ul cu antiloop,am face asa:
xml.firstChild.firstChild.firstChild
Cum aflam numele cd-ului aflat pe pozitia de mai sus ?
Ati vazut ca numele cd-urilor si artisitii sunt prezeti intr-o formulare de genul:
cd nume="Fastlane people" artist="antiloop"/>
Nume,artist se numesc atribute !
Ele se acceseaza in felul urmator.
Daca am vrea sa accesam numele cd-ului cu antiloop(a primului di nstructura principala), folosim sintaxa:
xml.firstChild.firstChild.firstChild.attributes.nume
Deci daca folosim trace(xml.firstChild.firstChild.firstChild.attributes.nume), ne va fi afisat:"Fastlane People".Fara ghilimelele.
In cazul in care am vrea sa accesam numele celuilalt cd,folosim:
trace(xml.firstChild.firstChild.childNodes[1].attributes.nume)
Pt primul cd ,in cazul folosirii "childNodes" si nu "firstChild", am fi folosit:
trace(xml.firstChild.firstChild.childNodes[0].attributes.nume)
Deci, reiau:childNodes[0] este echivalent cu firstChild.
In cazul de fata, al 2-lea cd, este si ultimul, fapt pt care NUMAI in cazul de fata:
childNodes[1]=lastChild
lastChild, dupa cum probabil v-ati dat seama, acceseaza ultimul nod din nodul curent.
Al 2-lea cd ar putea fi accesat prin:
xml.firstChild.firstChild.lastChild
Cam asta ar fi despre atribute.
O sa va mai spun despre nodurile text, insa pana atunci sa mai discutam niste treburi.
Am fi putut sa nu mai folosim atributul artist si totusi sa stocam cumva si artistul cd-ului.
L-am fi stocat chair in numele nodurilor.
In momentul de fata avem:
<cd nume="Fastlane people" artist="antiloop"/>
Am fi putut folosi:
<antiloop nume="Fastlane people"/>
Si am fi aflat numele artistului prin :
xml.firstChild.firstChild.firstChild.nodeName
Inca un lucru:
<antiloop nume="Fastlane people"/> este echivalent cu:
<antiloop nume="Fastlane People"></antiloop>

Cam atat pt moment...
O sa urmeze nodurile text SI UN TEST (SA VEDETI DACA ATI INTELES) FACUT DE MINE IN FLASH !
Si sa nu uit:Va voi spune si cum sa folositi xml-urile in flash.Cu exemple practice..


Sa incepem cu nodurile text.
Dupa cum ati vazut, am folosit atributele(<nod atribut="valoare"/>).
Acestea sunt bune si nu sunt bune....
Au dezavantaje !
De exemplu, nu poti sa bagi prea mult text !
Acest lucuru nu se mai intampla cu nodurile text.
Sa va dau un exemplu:

<text>Iata partea 2-a !

Sa incepem cu nodurile text.
Dupa cum ati vazut, am folosit atributele
</text>

Continutul poate fi accesat prin:
xml.firstChild.firstChild.nodeValue
xml este numele variabilei xml.
xml.firstChild este nodul <text>
xml.firstChild.firstChild ar fi nodul text ,insa acesta nu are nume.Fapt pt care xml.firstChild.firstChild.nodeName nu se poate folosi...
:anunt: O sa se puna la un moment dat problema integrarii de html in atribute/noduri text !
O varianta este oferite de xml ,dar eu o gasesc greoaie ,fapt pt care recomand urmatorul procedeu:
In loc sa folositi "<>" pt a deschide/inchide un tag, folositi "[]" !
Nu ! Nu osa le recunoasca flashul !
Dar am facut eu o functie care schimba toate "[]" dintr-un text in "<>"
si atunci nu mai e nici o problema !
Iata codul:

String.prototype.re=function(find,replace) {
      var string=this
        var counter
      while (counter<string.length) {
            var start = string.indexOf(find, counter);
            if (start == -1) {
                  break;
            } else {
                  var before=string.substr(0,start)
                  var after=string.substr(start+find.length,string.length)
                  string=before+replace+after
                  var counter=before.length+replace.length
                              
            }
      }
      return string;
}
String.prototype.convert=function(){
a=this
a=a.re("[","<")a=a.re("]",">")
return a
}


Adaugati codul de mai sus la inceputul fisierului din flash(pe primul frame).
O sa revin asupra folosirii stringurilor in flash(pt ca in mod normal acest lucru este foarte lent)
Cu acest cod introdus, in loc de
xml.firstChild.firstChild.nodeValue
veti folosi
xml.firstChild.firstChild.nodeValue.convert()
Asa veti avea html in flash !
Pt nelamuriri in privinta functilor prototype,postati mai jos ! ;)
Gata ! Asta e si cu nodurile text !

Cum sa incarcam un xml in flash...
In primul rand trebuie folosit xmlNitro
Apoi:

obiect=new XML() //declararea
obiect.ignoreWhite=true //aceasta comanda face ca liniile(BR-uurile) sa nu fie interpretate ca noduri.Foarte important ;)
obiect.onload()=func //executare func la incarcare
obiect.load("fisier.xml")
function func(){       //asta este functia...
_root.play()}           //next frame la incarcare xml
stop()

codul de mai sus este pt primul frame !
mai este nevoie de un frame(2) t a putea ca acolo sa folosim xml-ul incarcat !
Este nevoie de aceste doua frame-uri pt a evita incercarea manipularii unui xml pana ca acesta sa se fi incarcat.
pt frame-ul 2:

trace(obiect)
stop()

Codurile de mai sus vor afisa in fereastra de output din flash continutul fisierului fisier.xml.
Pana acum am inteles cum sa folosim un xml creat din exterior.
Urmeaza sa pun un test pt a va verifica cunostintele.

Un exemplu foarte bun:http://www.13xiv.com...n/tempmovie.swf

#2
Sebastian

Sebastian

    Active Member

  • Grup: Members
  • Posts: 1,182
  • Înscris: 26.11.2001
Pt sursa sau alte informatii, [email protected]

#3
BIGphAntom

BIGphAntom

    Senior Member

  • Grup: Senior Members
  • Posts: 3,206
  • Înscris: 30.11.2001
la mine NU se mai incarca bucatile de code 2 si 3, 4 !, (adica NU le pot vedea in pagina!), as fi interesat

#4
Sebastian

Sebastian

    Active Member

  • Grup: Members
  • Posts: 1,182
  • Înscris: 26.11.2001
Nu se mai incarca...asa e...
Nici nu cred ca le mai am. Nu stiu ce sa zic. Poate o sa le mai fac o data...sa vedem

#5
Sebastian

Sebastian

    Active Member

  • Grup: Members
  • Posts: 1,182
  • Înscris: 26.11.2001
OK, sorin a fost amabil si s-a autosesizat. Mi-a explicat ce e de facut ! Iata ca merge acum !!!

#6
BIGphAntom

BIGphAntom

    Senior Member

  • Grup: Senior Members
  • Posts: 3,206
  • Înscris: 30.11.2001
mii de multumiri :)

#7
jely

jely

    Member

  • Grup: Members
  • Posts: 469
  • Înscris: 20.05.2002
nu mai merge linku  si chiar eram si eu curios :(

#8
bidinel

bidinel

    Junior Member

  • Grup: Members
  • Posts: 32
  • Înscris: 29.04.2003
tutorial xml

#9
MembruAnonim

MembruAnonim

    MembruAnonim

  • Grup: Banned
  • Posts: 293,677
  • Înscris: 08.10.2015

Quote

trebuie folosit xmlNitro
ce este xmlNitro?

#10
Bogdan

Bogdan

    Moderator

  • Grup: Senior Members
  • Posts: 829
  • Înscris: 15.02.2002
Va recomand sa studiati si "XML Bible" care este o documentatie completa si foarte bine realizata. Este tratat pe larg subiectul, pe 23 de capitole, fiecare constand in cate un fisier PDF. De asemenea, este insotita de numeroase exemple.

Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate