XML vine de la Extensible Markup Language. XML e o forma de SGML (Standard Generalized Markup Language), pe scurt, acesta defineste o sintaxa pentru structurarea datelor (un limbaj) pe care si omul si calculatorul sa le poata citi.
Fiind un curs de PHP, explicatiile despre XML vor fi mai putine, scurte si simple, cat e necesar pentru a se intelege ce e si cum poate fi utilizat cu PHP.
Ca sa intelegeti cam ce este XML si ce se poate face cu el, ganditi-va ca e similar cu HTML-ul, dar fara aspect grafic, in sensul ca structura acestuia se formeaza pe baza unor tag-uri (elemente), precum <h1>, <div>, etc. in HTML, si care pot contine atribute (sau identificatori), iar in acelasi timp este o mini baza de date, deoarece scopul documentelor XML e acela de a aranja si stoca date intr-o anumita ordine si structura erarhica care sa poata fi citite si prelucrate de un alt limbaj, precum PHP.
Documentele XML pot fi create, scrise, folosind un editor simplu de texte (precum Notepad).
Dupa cum puteti vedea in modelul de mai jos, un document XML e asemanator cu unul HTML (daca stiti deja acest limbaj). Datele sunt incadrate in niste tag-uri. Spre deosebire de HTML, in XML denumirea tag-urilor (tehnic elemente) nu e stricta, putand fi folosite nume alese de fiecare in functie de optiunea fiecaruia pentru recunoasterea datelor ce vor fi scrise, care respecta cateva reguli minime.
Aceste reguli sunt:
<?xml version="1.0"?> <book> <publisher>Editura</publisher> <title>Titlu carte</title> <chapter title="Capitol carte"> <section title="Sub capitol"> <paragraph> O fraza din sectiunea acestui sub-capitol. </paragraph> <paragraph> Alta fraza din acelasi sub-capitol. </paragraph> </section> </chapter> </book>
Datele astfel stocate (cum puteti vedea in exemplul de sus) pot fi relativ usor citite si intelese de om (putand fi modificate simplu daca e nevoie) dar si de un limbaj de programare (PHP, ASP) care le preia din fisierul .xml, le prelucreaza si le poate aranja, manipula si transmite catre o alta aplicatie, precum un navigator (browser) web.
In practica se folosesc de obicei pentru stocarea datelor baze de date SQL, iar acest format XML este de preferat cand se doreste utilizarea acestor date de catre mai mullti agenti, in general in scop de citire; transmiterea fiind mai rapida si economica, de exemplu: Stiri, Meteo, Clasamente, etc.
Aici apare rolul important al limbajului PHP, care, dupa ce a preluat aceste date din fisierul .xml (ce poate fi pe alt server) le poate include intr-o pagina HTML pentru a fi afisate in browser, sau introduce intro alta baza de date mai mare.
PHP are functii speciale pentru citirea, recunoasterea si manipularea datelor din format XML si chiar pentru crearea, scrierea de documente XML (daca are permisiuni de scriere pe server). Vor fi aratate in tutorialele (lectiile urmatoare.
Cerintele, criteriile, pentru scrierea unui document XML corect sunt simple si minime. Totusi, un document XML valid si usor de inteles are nevoie sa urmeze anumite reguli stabilite, cunoscute generic ca DTD (Document Type Definition).
Ca sa intelegeti ce este si la ce e nevoie DTD, studiati urmatorul exemplu in comparatie cu cel de sus.
<?xml version="1.0"?> <book title="Nume carte"> <publisher name="Nume Editura"/> <chapter number="8"> <chapter_title>Titlu capitol</chapter_title> <p> <sentence>O fraza din sectiunea acestui sub-capitol.</sentence> <sentence>Alta fraza din acelasi sub-capitol.</sentence> </p> </chapter> </book>
<?xml version="1.0"?> <!DOCTYPE recipe [ <!ELEMENT recipe (ingredients, directions, servings)> <!ATTLIST recipe name CDATA #REQUIRED> <!ELEMENT ingredients (#PCDATA)> <!ELEMENT directions (#PCDATA)> <!ELEMENT servings (#PCDATA)> ]> <recipe name ="mancare"> <ingredients>Legume</ingredients> <ingredients>Paine</ingredients> <directions>Adauga la pachet</directions> <servings>12</servings> </recipe>
<!ELEMENT recipe (ingredients, directions, servings)> <!ATTLIST recipe name CDATA #REQUIRED> <!ELEMENT ingredients (#PCDATA)> <!ELEMENT directions (#PCDATA)> <!ELEMENT servings (#PCDATA)>
<ul> <li>http://coursesweb.net/html/</li> <li>http://www.marplo.net/html/</li> </ul>
.some_class { display: list-item; }
var obj = { "courses": ["php", "javascript", "ajax"] }; var jsonstr = JSON.stringify(obj); alert(jsonstr); // {"courses":["php","javascript","ajax"]}
$strhtml = '<body><div id="dv1">CoursesWeb.net</div></body>'; $dochtml = new DOMDocument(); $dochtml->loadHTML($strhtml); $elm = $dochtml->getElementById("dv1"); echo $elm->nodeValue; // CoursesWeb.net
I`m living here. - Traiesc /Locuiesc aici.
Estoy viviendo aquĆ. - Traiesc /Locuiesc aici.