Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 01/12: World Wide Web – aspecte arhitecturaleSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2016 (07/13) Modelarea datelor. Extragerea datelor cu XPath. Validări XML...Sabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 01/12: World Wide Web – aspecte arhitecturaleSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2016 (07/13) Modelarea datelor. Extragerea datelor cu XPath. Validări XML...Sabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2016 (06/13) Modelarea datelor. Familia XML + spații de numeSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...Sabin Buraga
Despre programarea în limbajul JavaScript direct în browser-ul Web (DOM, Ajax, Comet, mash-up, CORS și multe altele). Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...Sabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Modelarea datelor via XML. Design patterns in contextul specificarii document...Sabin Buraga
An introduction to XML (Extensible Markup Language), including several considerations regarding the use of design patterns in the context of semi-structural data modeling.
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...Sabin Buraga
O prelegere din cadrul materiei "aplicaţiilor Web la nivel de client" (CLIW), fondată și predată de Sabin Buraga la Facultatea de Informatică a Universității "Alexandru Ioan Cuza" din Iași.
Detalii la https://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni WebSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2016 (06/13) Modelarea datelor. Familia XML + spații de numeSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...Sabin Buraga
Despre programarea în limbajul JavaScript direct în browser-ul Web (DOM, Ajax, Comet, mash-up, CORS și multe altele). Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...Sabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Modelarea datelor via XML. Design patterns in contextul specificarii document...Sabin Buraga
An introduction to XML (Extensible Markup Language), including several considerations regarding the use of design patterns in the context of semi-structural data modeling.
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...Sabin Buraga
O prelegere din cadrul materiei "aplicaţiilor Web la nivel de client" (CLIW), fondată și predată de Sabin Buraga la Facultatea de Informatică a Universității "Alexandru Ioan Cuza" din Iași.
Detalii la https://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni WebSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...Sabin Buraga
A presentation (available in Romanian language) about RESTful Web service development, including several considerations regarding mash-ups & APIs.
For other details, visit http://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html
Informații referitoare la arhitectura generală a unui navigator Web, inclusiv exemple specifice fiecărui browser în parte. Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...Sabin Buraga
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
O prelegere din cadrul materiei "aplicaţiilor Web la nivel de client" (CLIW), fondată și predată de Sabin Buraga la Facultatea de Informatică a Universității "Alexandru Ioan Cuza" din Iași.
Detalii la https://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 09/12: Servicii Web. Paradigma RESTSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSabin Buraga
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
STAW 08/12: Programare Web. Suita de tehnologii HTML5Sabin Buraga
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
STAW 11/12: Performanţa aplicaţiilor Web la nivel de clientSabin Buraga
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
O prezentare referitoare la dezvoltarea aplicațiilor Web dedicată elevilor de liceu. Prelegerea a fost susținută în cadrul Școlii de vară SummerIS organizată la Universitatea Alexandru Ioan Cuza din Iași, Facultatea de Informatică (iulie 2019).
A presentation regarding Web application development delivered to high-school students, a part of the SummerIS summer school organized at the Faculty of Computer Science, Alexandru Ioan Cuza University of Iasi, Romania (July 2019).
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...Sabin Buraga
A lecture delivered for Human-Computer Interaction, a post-graduate level discipline taught by Dr. Sabin Buraga at Faculty of Computer Science, Alexandru Ioan Cuza University of Iasi, Romania.
Visit also https://profs.info.uaic.ro/~busaco/teach/courses/hci/hci-film.html
16. Dr.SabinBuragawww.purl.org/net/busaco
dom: niveluri de specificare
DOM 1 (1998)
http://www.w3.org/TR/REC-DOM-Level-1/
DOM Core pentru XML
DOM HTML pentru procesarea standardizată
a paginilor Web – uzual, la nivel de client (browser)
17. Dr.SabinBuragawww.purl.org/net/busaco
dom: niveluri de specificare
DOM 2 (2001)
http://www.w3.org/TR/REC-DOM-Level-2/
recomandări multiple privind diverse funcționalități:
spații de nume, aplicare de stiluri,
răspuns la evenimente etc.
18. Dr.SabinBuragawww.purl.org/net/busaco
dom: niveluri de specificare
DOM 3 (2004)
http://www.w3.org/TR/DOM-Level-3-Core/
funcționalități specifice oferite de module
(unele deja standardizate)
XPath, traversare, validare,
încărcare și salvare (asincrone),…
29. Dr.SabinBuragawww.purl.org/net/busaco
dom: interfețe – exemplu
Specificarea interfeței NodeList
interface NodeList {
Node item (in unsigned long index);
readonly attribute unsigned long length;
};
metodă cu un parametru;
rezultat: o valoare de tip Node
proprietate read-only
de tip întreg lung fără semn
32. Dr.SabinBuragawww.purl.org/net/busaco
dom: core
Un document ierarhie de obiecte-nod
care pot implementa interfețe (specializate)
nodurile posedă descendenți ori sunt noduri frunză
parcurgerea arborelui se realizează
în preordine, în adâncime (depth-first)
a se (re)vedea
XML Infoset
51. Dr.SabinBuragawww.purl.org/net/busaco
dom: html
DOM HTML extinde DOM Core
specializarea interfețelor și oferirea de suport obiectual
pentru prelucrarea documentelor HTML
standardizează procesarea paginilor Web
(e.g., în cadrul navigatorului)
52. Dr.SabinBuragawww.purl.org/net/busaco
interface HTMLDocument : Document {
attribute DOMString title; // titlul documentului
readonly attribute DOMString referrer; // adresa resursei ce referă pagina
readonly attribute DOMString domain; // domeniul de care aparține
readonly attribute DOMString URL; // URL-ul absolut al documentului
attribute HTMLElement body; // acces la elementul <body>
readonly attribute HTMLCollection images; // lista tuturor imaginilor
readonly attribute HTMLCollection links; // lista tuturor legăturilor
readonly attribute HTMLCollection forms; // lista tuturor formularelor
attribute DOMString cookie; // acces la cookie-uri
// emite o excepție dacă e asignată o valoare
void open (); // deschide un flux de scriere (alterează DOM-ul curent)
void close (); // închide fluxul de scriere și forțează redarea conținutului
void write (in DOMString text); // scrie un șir de caract. (e.g., cod HTML)
void writeln (in DOMString text); // idem, dar inserează și new line
NodeList getElementsByName (in DOMString numeElement);
// furnizează o listă de elemente conform unui nume de tag
};
53. Dr.SabinBuragawww.purl.org/net/busaco
dom: html
Interfața HTMLCollection modelează o listă de noduri
un nod poate fi accesat folosind un index numeric
sau pe baza unui identificator (e.g., stabilit via atributul id)
interface HTMLCollection {
readonly attribute unsigned long length; // oferă lungimea listei
Node item (in unsigned long index); // oferă un nod via un index numeric
Node namedItem (in DOMString name); // furnizează un nod pe baza numelui
};
61. Dr.SabinBuragawww.purl.org/net/busaco
dom: nivelul 2
Extinde funcționalitățile DOM1
alte facilități:
controlul aplicării foilor de stiluri CSS
tratarea evenimentelor
specificarea filtrelor și iteratorilor
(parcurgeri sofisticate de arbori DOM)
63. Dr.SabinBuragawww.purl.org/net/busaco
dom: nivelul 2
Tratarea evenimentelor
definirea de activități (callback-uri) executate
la apariția unui eveniment
eveniment = acțiune produsă în cadrul mediului de
execuție în urma căreia programul va putea reacționa
66. Dr.SabinBuragawww.purl.org/net/busaco
dom: nivelul 2
Tratarea evenimentelor
descrierea arborescentă a fluxului de evenimente
tratarea evenimentului poate avea loc atunci când
evenimentul e propagat de la obiectul unde a survenit
până la entitățile superioare lui – bubbling phase
69. Dr.SabinBuragawww.purl.org/net/busaco
dom: nivelul 2
Tratarea evenimentelor
de interfață – e.g., interacțiunea cu utilizatorul
mouse: click, mousedown, mouseup, mouseover, mousemove
tastatură: keypress, keydown, keyup
uzual, folosite în
contextul HTML
70. Dr.SabinBuragawww.purl.org/net/busaco
dom: nivelul 2
Tratarea evenimentelor
referitoare la interacțiunea cu browser-ul, specifice HTML
(la nivel de document Web ori de formular)
load, unload, abort, error,
select, submit, focus, blur, resize, scroll
72. Dr.SabinBuragawww.purl.org/net/busaco
dom: nivelul 2
Tratarea evenimentelor
de modificare a structurii documentului (mutation events)
subtreeModified, nodeInserted, nodeRemoved, attrModified,…
în prezent, acestea sunt considerate învechite
alternativă: recurgerea la MutationObserver (DOM 4)
http://www.w3.org/TR/dom/#mutation-observers
avansat
82. Dr.SabinBuragawww.purl.org/net/busaco
dom: nivelul 3
Module DOM 3 standardizate
DOM Validation
oferă funcționalități de creare/editare (automată)
de documente conformându-se
unor scheme de validare
http://www.w3.org/TR/DOM-Level-3-Val
avansat
83. Dr.SabinBuragawww.purl.org/net/busaco
dom: nivelul 4
Unifică DOM3 Core, Element Traversal,
Selectors API – level 2, DOM3 Events
apar interfețele ParentNode, ChildNode, Elements,…
suport și pentru specificarea de evenimente proprii
via interfața CustomEvent
avansat
86. Dr.SabinBuragawww.purl.org/net/busaco
dom: nivelul 4
Noi evenimente HTML5 ce pot fi tratate
interacțiune tactilă (din 2013): www.w3.org/TR/touch-events/
touchstart, touchend, touchmove, touchcancel
+
conectivitatea la rețea: online, offline
diverse operațiuni: redo, undo, drag, drop,…
starea dispozitivului – deviceorientation, devicemotion
…și altele
avansat
87. Dr.SabinBuragawww.purl.org/net/busaco
dom: nivelul 4
Selectors API
acces la diverse date via selectorii CSS cu metodele
query() queryAll() querySelector() querySelectorAll()
// toate elementele <li> selectate via CSS (date de tip NodeList)
var elemente = document.querySelectorAll ("ul.resurse>li");
for (var i = 0; i < elemente.length; i++) {
prelucreaza (elemente.item (i)); // procesăm fiecare nod
}
avansat
89. Dr.SabinBuragawww.purl.org/net/busaco
dom: implementări
Expat – procesor XML cu suport pentru diverse metode de
prelucrare (DOM, SAX etc.): http://expat.sourceforge.net/
(C, C++, Lua, .NET, Objective-C, Perl, Python, Ruby, Tcl)
HXT (Haskell XML Toolbox): procesări DOM în Haskell
www.haskell.org/haskellwiki/HXT
JAXP – parte integrantă din J2SE (javax.xml.*)
https://docs.oracle.com/javase/tutorial/jaxp/
JDOM – API special pentru Java: http://www.jdom.org/
90. Dr.SabinBuragawww.purl.org/net/busaco
dom: implementări
JSXML – bibliotecă JavaScript: http://jsxml.net/
QDOM – la Qt (C++): doc.qt.io/qt-5/qdomdocument.html
libxml – API oferit inițial de GNOME: http://xmlsoft.org/
baza unor biblioteci pentru C++, Perl, PHP, Python, Ruby,…
folosit și de libxslt
MSDOM – procesări XML pe client/server în C++
sau JScript (IE, IIS+ASP,…); parte din MSXML SDK
Xerces DOM API – platformă XML (C++/Java):
http://xml.apache.org/
91. Dr.SabinBuragawww.purl.org/net/busaco
dom: implementări
XmlDocument – clasă .NET Framework (C# et al.)
jsdom – modul Node.js: https://nodejsmodules.org/tags/dom
XML::DOM – modul Perl: search.cpan.org/perldoc?XML::DOM
bazat pe Expat (XML::Parser)
xml.dom – modul din Python, parte a PyXML
https://docs.python.org/2/library/xml.dom.html
92. Dr.SabinBuragawww.purl.org/net/busaco
dom: api-uri particulare (exemple)
BBC API – acces la programele transmise
(disponibile în formatele XML, JSON, RDF, iCal):
http://www.bbc.co.uk/programmes/developers
Google APIs – suită de API-uri (Java, JS, PHP, Python,
Objective-C, .NET) privind serviciile Google publice:
https://developers.google.com/apis-explorer/
node-xmpp – biblioteca Node.js (JavaScript) pentru XMPP
https://npmjs.org/package/node-xmpp
avansat
93. Dr.SabinBuragawww.purl.org/net/busaco
dom: api-uri particulare (exemple)
Open Data Protocol – inițiativă Microsoft (implementări
în Java, JS, PHP, Ruby, .NET): http://www.odata.org/
SVG DOM API – procesarea documentelor SVG în Java
(Apache Batik): http://xmlgraphics.apache.org/batik/
TwiMLT (Twilio Markup Language) API – acces la
serviciile de telefonie Twilio via biblioteci C++, Erlang,
Perl, PHP, Python, Ruby, Scala: www.twilio.com/api
avansat
95. Dr.SabinBuragawww.purl.org/net/busaco
try {
$doc = new DomDocument; // instanțiem un obiect DOM
$doc->load ("projects.xml"); // încărcăm documentul XML
// afișăm informații privitoare la proiecte: titlul & clasa (dacă există)
$projs = $doc->getElementsByTagName("project");
foreach ($projs as $proj) { // preluăm nodurile-element <title>
$titles = $proj->getElementsByTagName("title");
foreach ($titles as $title) {
echo "Proiect: " . $title->nodeValue;
}
// verificăm dacă există specificată clasa proiectului
if ($proj->hasAttribute("class")) {
echo " de clasa " . $proj->getAttribute("class");
}
}
} catch (Exception $e) {
die ("Din păcate, a survenit o excepție.");
}
procesări DOM
în limbajul PHP
96. Dr.SabinBuragawww.purl.org/net/busaco
try:
doc = urllib.urlopen('projects.xml') # încărcăm documentul
dom = parse(doc) # îl procesăm…
# parcurgem elementele <project> și oferim informații despre fiecare
for proiect in dom.getElementsByTagName('project'):
print 'Proiectul ' + proiect.childNodes[1].firstChild.nodeValue +
' este de clasă: ' + proiect.getAttribute('class')
except Exception:
print 'Din păcate, a survenit o excepție.'
procesări DOM în limbajul Python
97. Dr.SabinBuragawww.purl.org/net/busaco
# program Perl care contorizează proiectele de clasă 'S'
# instanțiem procesorul XML
$parser = new XML::DOM::Parser;
# procesăm documentul
$doc = $parser->parsefile ('projects.xml');
$proiecte = $doc->getElementsByTagName ('project');
$nr_proiecte = $proiecte->getLength;
$proiecte_clasaS = 0; # inițial, 0 proiecte de clasă 'S'
for (my $i = 0; $i < $nr_proiecte; $i++) { # baleiăm toate proiectele
$proiect = $proiecte->item ($i); # preluăm clasa proiectului
$clasa = $proiect->getAttributeNode ('class')->getValue;
if ($clasa eq 'S') {
$proiecte_clasaS++;
}
}
print "nSunt $proiecte_clasaS proiecte de clasă S.n";
$doc->dispose (); # eliberăm memoria
procesări DOM
în limbajul Perl
98. Dr.SabinBuragawww.purl.org/net/busaco
try {
doc = new XmlDocument(); // instanțiem un document XML
doc.Load("projects.xml"); // pentru a fi încărcat
// afișăm informații privitoare la proiecte: titlu și clasă
XmlNodeList projs = doc.GetElementsByTagName("project");
foreach (XmlElement proj in projs) {
// selectăm nodurile <title> via o expresie XPath
XmlNodeList titles = proj.SelectNodes("./title");
foreach (XmlElement title in titles) {
Console.Write("Proiect: {0} ", title.InnerXml);
}
if (proj.HasAttribute("class") == true) { // există clasa specificată?
Console.WriteLine("de clasa '{0}'.", proj.GetAttribute("class"));
}
} catch ( Exception e ) {
// din păcate, a survenit o excepție
} procesări DOM
în C# (.NET)