SlideShare a Scribd company logo
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Tehnologii Web
procesarea datelor XML (II)
⦑ ⦒SAX (Simple API for XML)
prelucrarea simplificată a documentelor XML
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
„Înainte de a pune noi întrebări,
gândește-te dacă într-adevăr vrei
să cunoști răspunsul la ele.”
Gene Wolfe
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Există maniere alternative
pentru procesarea documentelor XML?
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax: intro
Scop:
consultarea documentelor XML/HTML
fără ca în prealabil să fie construit
arborele de noduri-obiect
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax: intro
Scop:
consultarea documentelor XML/HTML
fără ca în prealabil să fie construit
arborele de noduri-obiect
documentul nu trebuie stocat complet
în memorie înainte de a fi efectiv prelucrat
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax: caracterizare
Oferă o procesare XML secvențială (liniară),
bazată pe evenimente – event-oriented
inițiator: David Megginson
http://www.megginson.com/downloads/SAX/
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax: caracterizare
Oferă o procesare XML secvențială (liniară),
bazată pe evenimente – event-oriented
“SAX is a streaming interface – applications receive
information from XML documents in a continuous stream,
with no backtracking or navigation allowed”
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax: caracterizare
Efort independent – de cel al Consorțiului Web –
de standardizare a procesării XML
condusă de evenimente
www.saxproject.org
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax: caracterizare
Larg acceptat ca standard industrial
SAX 1.0 (1998)
implementare de referință în limbajul Java
org.xml.sax
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax: caracterizare
Larg acceptat ca standard industrial
SAX 2.0 (2004)
suport pentru spații de nume,
diverse configurări + extensii
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax: procesare
Pentru fiecare tip de construcție XML
– început de tag, sfârșit de tag, date (conținut),
instrucțiune de procesare, comentariu,... –
va fi emis un eveniment care va fi tratat
de o funcție/metodă (handler)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax: procesare
Funcțiile/metodele de tratare se specifică
de către programator, pentru fiecare tip
de construcție în parte
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax: procesare
Programul consumă și tratează evenimente
produse de procesorul SAX
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax: procesare
Minimal, trebuie definite funcțiile/metodele:
trateaza_tag_inceput (procesor, tag, atrib)
trateaza_tag_sfarsit (procesor, tag)
trateaza_date_caracter (procesor, date)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax: procesare
Minimal, trebuie definite funcțiile/metodele:
trateaza_tag_inceput (procesor, tag, atrib)
trateaza_tag_sfarsit (procesor, tag)
trateaza_date_caracter (procesor, date)
conține lista atributelor
atașate tag-ului de început
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax: procesare
Pentru fiecare eveniment de apariție a tag-ului de
început, a tag-ului de sfârșit și a datelor-conținut,
se atașează una din funcțiile de tratare, respectiv:
set_element_handler
(trateaza_tag_inceput, trateaza_tag_sfarsit)
set_character_data_handler
(trateaza_date_caracter) funcții sau
metode definite
de programator
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax: procesare

Aplicație
client
Procesor
SAX
Instanțierea
handler-elor
notificare
apariție eveniment
început de tag
Procesare
trimite
evenimente
SAX
apelare handler

inițiere procesare: parse ( )
<projects>
<project class="S">
…
</project>
</projects>
apariție eveniment
final de tag
apelare handler
etc.
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax: procesare
Implementarea de referință (Java): org.xml.sax
detalii la
www.saxproject.org/apidoc/org/xml/sax/package-summary.html
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax: procesare
Interfețe ce pot fi implementate de aplicație:
ContentHandler
rezolvă notificări de evenimente vizând tipul de conținut:
început de document, tag de început, date textuale,
tag de sfârșit, sfârșit de document etc.
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax: procesare
Interfețe ce pot fi implementate de aplicație:
Attributes
definește lista atributelor
specificate în cadrul unui tag de început
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax: procesare
Interfețe ce pot fi implementate de aplicație:
XMLReader
specifică maniera de citire a datelor XML folosind
metode de tratare a evenimentelor (callback-uri)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax: procesare
Interfețe ce pot fi implementate de aplicație:
ErrorHandler
specifică maniera de tratare
a erorilor (fatale) și avertismentelor
pot fi emise excepții precum
SAXException și SAXParseException
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax: procesare
Clasa SAX oferită:
InputSource
încapsulează informații despre o sursă de intrare
de unde se preiau datele XML (e.g., flux de caractere)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
// prelucrare XML via evenimente (consultarea datelor)
public interface XMLReader {
// furnizarea de informații despre document
public ContentHandler getContentHandler ();
public DTDHandler getDTDHandler ();
public EntityResolver getEntityResolver ();
public ErrorHandler getErrorHandler ();
// stabilirea diverselor funcționalități
public void setContentHandler (ContentHandler contentHandler);
public void setDTDHandler (DTDHandler dtdHandler);
public void setEntityResolver (EntityResolver resolver);
public void setErrorHandler (ErrorHandler errHandler);
// procesarea propriu-zisă
public void parse (InputSource in)
throws java.io.IOException, SAXException;
public void parse (String uri)
throws java.io.IOException, SAXException;
}
Exemplificare: interfața XMLReader (Apache Xerces)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
// utilizată pentru manipularea conținuturilor XML
public interface ContentHandler {
public void setDocumentLocator (Locator locator);
public void startDocument () throws SAXException;
public void endDocument () throws SAXException;
// evenimente
public void startElement (String uri, String localName, String qName,
Attributes attributes) throws SAXException;
public void endElement (String uri, String localName, String qName)
throws SAXException;
public void characters (char buf[], int offset, int length)
throws SAXException;
// informații suplimentare
public void ignorableWhitespace (char buf[], int offset, int length)
throws SAXException;
public void startPrefixMapping (String prefix, String uri)
throws SAXException;
public void endPrefixMapping (String prefix)
throws SAXException;
}
Exemplificare: interfața ContentHandler (Apache Xerces)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
// specifică atributele asociate unui element
public interface Attributes {
public int getLength ();
public String getType (int index);
public String getValue (int index);
// acces la informațiile privitoare la numele atributului
public String getQName (int index);
public String getLocalName (int index);
public String getURI (int index);
// acces via spații de nume XML
public int getIndex (String uri, String localName);
public String getType (String uri, String localName);
public String getValue (String uri, String localName);
// acces via nume calificate (ns:nume)
public int getIndex (String qName);
public String getType (String qName);
public String getValue (String qName);
}
Exemplificare: interfața Attributes (Apache Xerces)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax: implementări
libxml – API open source: C, C++, Haskell, Scala,…
MSSAX – procesări SAX în C, C++, JavaScript;
inclus în MSXML SDK (Software Development Kit)
NSXMLParser – implementare Objective-C (Apple)
org.xml.sax – API de referință pentru Java
REXML – procesor XML pentru Ruby
QSAX – parte a mediului de dezvoltare Qt (C++)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax: implementări
sax-js – modul Node.js; altele la nodejsmodules.org/tags/sax
Xerces SAX API – platformă XML pentru C++ și Java:
http://xml.apache.org/
erlsom, xmerl_eventp – module Erlang
xml – pachet Go: https://golang.org/pkg/encoding/xml/
XML::Parser – modul Perl bazat pe procesorul Expat
xml_*( ) – funcții PHP: php.net/manual/en/book.xml.php
xml.sax – module Python: wiki.python.org/moin/Sax
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax: demo
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
(în loc de) pauză
http://www.safelyendangered.com/comic/road-signs-for-idiots/
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax vs. dom
Când trebuie folosit SAX?
procesarea unor documente de mari dimensiuni
necesitatea abandonării procesării
(procesorul SAX poate fi oprit oricând)
extragerea unor informații de mici dimensiuni
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax vs. dom
Când trebuie folosit SAX?
crearea unei structuri noi de document XML
utilizarea în contextul unor resurse de calcul reduse
(memorie scăzută, lărgime de bandă îngustă,...)
exemplificare pentru Android:
developer.android.com/reference/javax/xml/parsers/SAXParser.html
cod demonstrativ pentru iOS – SeismicXML:
https://developer.apple.com/library/ios/samplecode/SeismicXML/
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax vs. dom
Când trebuie utilizat DOM?
accesul direct la datele dintr-un document XML
procesări sofisticate
filtrarea complexă a datelor via XPath
efectuarea de transformări XSL
validarea datelor XML prin DTD, XML Schema etc.
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax vs. dom
Când trebuie utilizat DOM?
necesitatea modificării și/sau salvării documentelor XML
în contextul procesării datelor XML/HTML direct
în cadrul navigatorului Web, date obținute eventual
via transferuri asincrone prin AJAX
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax vs. dom
DOM necesită
încărcarea completă
a documentului XML
în vederea procesării
ca arbore
HTML
HtmlElement
HTML
BodyElement
HTML
ParagraphEle
ment
Text
HTML
DivElement
HTML
ImageElement
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax vs. dom
SAX preia fragmente reduse din document,
efectuându-se o prelucrare liniară
(șir de evenimente)
start tag
start tag
characters
end tag
end tag
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax vs. dom
SAX poate fi utilizat
pentru generarea de arbori DOM
Invers, arborii DOM pot fi traversați
pentru a se emite evenimente SAX
exemplificări:
modulul dom-js (Node.js), biblioteca lxml (Python)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax vs. dom
În cazul unor structuri XML sofisticate,
maniera de procesare SAX poate fi inadecvată
procesările SAX ignoră
contextul apariției unui anumit element
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax vs. dom: exemplificare
Fie structura de document XML,
specificată prin următorul DTD:
<!DOCTYPE catalog [
<!ELEMENT catalog (categ+)>
<!ELEMENT categ (#PCDATA | categ)*>
]>
Ce metodă de procesare s-ar preta, dacă numărul de
elemente <categ> ar fi de ordinul milioanelor?
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax vs. dom
Unele implementări SAX oferă suport
pentru validări și transformări
uzual, se folosesc ambele abordări
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Există și alte metode de procesare XML?
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Procesarea documentelor XML
alternative:
XPP – XML Pull Parsing
„legarea” datelor XML
procesare simplificată
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative: xml pull parsing
Stiluri de procesări XML conduse de evenimente:
push versus pull
avansat
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative: xml pull parsing
Stiluri de procesări XML conduse de evenimente:
push = procesorul XML citește date XML și notifică
aplicația asupra evenimentelor survenite
(parsing events) – SAX
avansat
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative: xml pull parsing
Stiluri de procesări XML conduse de evenimente:
push = procesorul XML citește date XML și notifică
aplicația asupra evenimentelor survenite
(parsing events) – SAX
programul nu poate face cereri de evenimente
ele apar așa cum sunt trimise (push) de procesor
avansat
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative: xml pull parsing
Stiluri de procesări XML conduse de evenimente:
pull = aplicația controlează maniera de procesare și poate
solicita (pull) procesorului următorul eveniment XML
XPP – XML Pull Parsing
www.xmlpull.org
avansat
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative: xml pull parsing
Stiluri de procesări XML conduse de evenimente:
pull = aplicația controlează maniera de procesare și poate
solicita (pull) procesorului următorul eveniment XML
XPP – XML Pull Parsing
structura codului-sursă al programului
reflectă structura documentului XML prelucrat
avansat
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative: xml pull parsing
Interfețele push Interfețele pull
Procesare read-only
Moștenesc avantajele
interfețelor push
Prelucrare rapidă,
via fluxuri de date (streams)
Evenimentele se consumă
conform necesităților
Codul-sursă poate fi dificil
de înțeles
Programele au o structură
mai clară
avansat
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
xml pull parsing – implementări
StAX – Streaming API for XML (Java) – JSR 173
http://jcp.org/en/jsr/detail?id=173
exemple de implementări:
Javolution – focalizat pe performanță: http://javolution.org/
Oracle StAX – inclus în XDK (XML Developer’s Kit)
https://docs.oracle.com/javase/tutorial/jaxp/stax/
Woodstox – https://github.com/FasterXML/woodstox
avansat
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
xml pull parsing – implementări
irrXML – inițial, parte din Irrlicht 3D Engine (C++)
pull – pachet Scala de procesare XPP
QXmlStreamReader, QXmlStreamWriter din mediul Qt (C++)
saxpath – modul Node.js permițând evaluarea
de expresii XPath pentru un flux de evenimente SAX
xml.dom.pulldom – soluție Python
XmlPullParser – interfață Java pentru Android
avansat
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative
Clasificare a manierelor de procesare XML
mod de accesare: secvențial vs. direct (random)
controlul fluxului de evenimente: pull vs. push
managementul arborelui: ierarhic vs. imbricat
avansat
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative
DOM
acces direct, în stilul pull
SAX
acces secvențial, în stilul push
XPP și .NET XmlTextReader
acces secvențial, în stilul pull
avansat
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative
„Legarea” datelor XML de alte surse de date
(XML binding)
baze de date: XML infoset  dataset
avansat

<doc>
<xml />
<!-- … -->
</doc>
Id D P T
1 … … …
2 … … …
3 … … …
<doc>
<xml />
<!-- … -->
</doc>
data sets
(tables)
arbore DOM
(în memorie)
fișier
XML
DBMS
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative
„Legarea” datelor XML de alte surse de date
(XML binding)
baze de date: XML infoset  dataset
specificația SQL/XML – vezi standardul SQL:2011-14
aspecte de interes:
tipul XML pentru valori ale câmpurilor tabelelor
recurgerea la predicate + funcții specifice XML
avansat
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
baze de date: XML infoset  dataset
implementări concrete:
Oracle XML DB
docs.oracle.com/cd/B28359_01/appdev.111/b28369/xdb01int.htm
pureXML (IBM DB2)
www.ibm.com/developerworks/data/library/techarticle/dm-0603saracco2/
SQLXML (Microsoft SQL Server)
msdn.microsoft.com/library/aa286527.aspx
XML Functions (PostgreSQL)
www.postgresql.org/docs/current/static/functions-xml.html
avansat
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative
„Legarea” datelor XML de alte surse de date
(XML binding)
abordare obiectuală:
date XML  clase create „din zbor”
(serialization, marshalling)
avansat
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
abordare obiectuală:
date XML  clase create „din zbor”
exemple:
C++ – cereal: http://uscilab.github.io/cereal/
C++, C#, Go, Java, Python – Protocol Buffers
developers.google.com/protocol-buffers/
Java – Digester: commons.apache.org/proper/commons-digester/
JS – node-xml2js: github.com/Leonidas-from-XIV/node-xml2js
.NET (C# et al.) – clasa XmlSerializer
PHP – SimpleXML: php.net/manual/en/ref.simplexml.php
Python – Untangle: github.com/stchris/untangle
Scala – scalaxb: http://scalaxb.org/
avansat
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative
„Legarea” datelor XML de alte surse de date
(XML binding)
interogări asupra datelor XML
direct în limbajul de programare
LINQ (Language INtegrated Query) – .NET Framework
http://msdn.microsoft.com/en-us/library/vstudio/bb397926.aspx
avansat
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
XDocument proiecte; // XDocument e o clasă .NET
proiecte = XDocument.Load ("projects.xml");
var proiecteS =
// via o expresie LINQ, preluăm toate proiectele
from p in proiecte.Descendants ("project")
// din care le alegem pe cele de clasa 'S'
where (String) p.Attribute ("class") == "S"
// ordonate după numărul de studenți
orderby (String) p.Element ("stud")
// selectând doar titlul acestora
select (String) p.Element ("title");
// afișăm titlul proiectelor de clasa 'S'
foreach (var proiect in proiecteS) {
Console.WriteLine (proiect);
}
// același rezultat, recurgând la XPath
var proiecteS2 = (IEnumerable)
proiecte.XPathEvaluate ("//project[@class='S']/title");
avansat
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative
„Legarea” datelor XML de alte surse de date
(XML binding)
JAXB – Java Architecture for XML Binding (JSR-222)
https://jcp.org/en/jsr/detail?id=222
implementarea de referință: https://jaxb.java.net/
de studiat și EclipseLink: www.eclipse.org/eclipselink/
avansat
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative
„Legarea” datelor XML de alte surse de date
(XML binding)
interoperabilitate cu alte formate: XML  JSON
nu există o metodă standardizată
exemplificări de instrumente și biblioteci:
Apache Camel (Java), js2xmlparser (Node.js),
JSON-lib (Java), ruby-xml-to-json, x2js (JavaScript),
xml2json (Node.js), xml-to-json (Haskell), xmlutils.py
avansat
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative
Procesarea XML simplificată
scop:
procesarea unui document XML (de mici dimensiuni)
direct în memorie,
în manieră obiectuală,
diferită de DOM
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative
Procesarea XML simplificată
uzual, adoptă maniera de prelucrare XPP
(XML Pull Parsing)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative
Procesarea XML simplificată
fiecărui element XML îi poate corespunde
o proprietate a unui obiect
atributele asociate elementelor XML pot fi modelate
via o structură de date – e.g., tablou asociativ
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative
Procesarea XML simplificată
exemplificări diverse:
libxml (C, C++ și alte limbaje)
SimpleXML (PHP) – php.net/manual/en/book.simplexml.php
XML::Simple + XML::Writer (Perl)
XmlSimple (Ruby)
XmlTextReader + XmlTextWriter (.NET)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative
Procesarea XML simplificată
pentru consultare, se poate folosit
un „cititor” (reader): XMLReader
exemple:
modulul xmlreader pentru Node.js
xmlReader oferit de biblioteca libxml (implementare C)
XMLReader (PHP) – php.net/manual/en/book.xmlreader.php
clasa XmlReader oferită de .NET (C# et al.)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative
Procesarea XML simplificată
pentru generare, se poate utiliza
un „scriitor” (writer): XMLWriter
exemplificări:
clasa XmlWriter pentru .NET
xmlWriter din cadrul bibliotecii libxml (C et al.)
XMLWriter (PHP) – php.net/manual/en/book.xmlwriter.php
modulul xml-writer oferit pentru Node.js
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Cum pot fi procesate documentele HTML?
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
procesare html
Aspect de interes:
ignorarea erorilor de sintaxă
documente bine formatate (well formed)
versus
documente valide
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
procesare html
Aspect de interes:
ignorarea erorilor de sintaxă
malformed markup
sunt relativ rare cazurile în care documentele HTML
sunt scrise/generate corect
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
procesare html
Tehnica folosită uzual – nerecomandată
Web scrapping
extragerea datelor de interes
prin prelucrarea – de obicei, empirică –
a marcajelor HTML
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
procesare html
Recurgerea la un procesor HTML/XML specific
scopuri importante:
traversarea (procesarea) unei pagini Web – e.g., via DOM
+
detectarea & repararea erorilor sintactice (HTML clean)
vezi și cursurile
anterioare
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
procesare html: instrumente
Beautiful Soup – bibliotecă Python
http://www.crummy.com/software/BeautifulSoup/
Gumbo – procesor HTML5 implementat în C (Google)
https://github.com/google/gumbo-parser
html5lib – procesare + serializare HTML pentru Python
https://github.com/html5lib
HTML::Gumbo, HTML::Parser – module Perl
http://search.cpan.org/dist/HTML-Parser/
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
procesare html: instrumente
Html Agility Pack – bibliotecă .NET
http://htmlagilitypack.codeplex.com/
Hubbub – prelucrare de marcaje HTML5 în limbajul C
http://www.netsurf-browser.org/projects/hubbub/
Jericho HTML Parser – bibliotecă Java de procesare HTML
http://jericho.htmlparser.net/
jsoup – bibliotecă Java pentru HTML5
http://jsoup.org/
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
procesare html: instrumente
Masterminds HTML5-PHP – procesor HTML5 în PHP
http://masterminds.github.io/html5-php/
Nokogiri – pachet Ruby
http://www.nokogiri.org/
Parse5 – modul Node.js
https://github.com/inikulin/parse5
Pure JavaScript HTML5 Parser – bibliotecă JS
https://github.com/blowsie/Pure-JavaScript-HTML5-Parser
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
procesare html: instrumente
HtmlCleaner – instrument implementat în Java pentru
corectarea marcajelor HTML eronate
HTML Purifier – verificare & filtrare a marcajelor HTML
(inclusiv vizând atacuri de tip XSS – Cross Site Scripting)
cu implementări în PHP și Objective-C
NekoHTML – procesor Java pentru HTML bazat pe Xerces
cu suport pentru rezolvarea erorilor sintactice
Validator.nu – procesor Java folosind DOM ori SAX
cu semnalarea erorilor de sintaxă HTML5
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rezumat
⦑ ⦒
procesări XML: de la SAX la XPP și Simple XML
instrumente de prelucrare a documentelor HTML
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
episodul viitor: servicii Web prin SOAP

More Related Content

What's hot

Un mini-tutorial JavaScript
Un mini-tutorial JavaScriptUn mini-tutorial JavaScript
Un mini-tutorial JavaScript
Sabin Buraga
 
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Sabin Buraga
 
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTWeb 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma REST
Sabin Buraga
 
CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6
CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6
CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6
Sabin Buraga
 
Node.js: aspecte esențiale
Node.js: aspecte esențialeNode.js: aspecte esențiale
Node.js: aspecte esențiale
Sabin Buraga
 
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
Sabin Buraga
 
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Sabin Buraga
 
CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5
CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5
CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5
Sabin Buraga
 
CLIW 2017-2018 (8/12) Ingineria dezvoltării aplicaţiilor JavaScript
CLIW 2017-2018 (8/12) Ingineria dezvoltării aplicaţiilor JavaScriptCLIW 2017-2018 (8/12) Ingineria dezvoltării aplicaţiilor JavaScript
CLIW 2017-2018 (8/12) Ingineria dezvoltării aplicaţiilor JavaScript
Sabin Buraga
 
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelWeb 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Sabin Buraga
 
CLIW 2017-2018 (5/12) Limbajul de programare JavaScript. Aspecte esenţiale
CLIW 2017-2018 (5/12) Limbajul de programare JavaScript. Aspecte esenţialeCLIW 2017-2018 (5/12) Limbajul de programare JavaScript. Aspecte esenţiale
CLIW 2017-2018 (5/12) Limbajul de programare JavaScript. Aspecte esenţiale
Sabin Buraga
 
Sisteme de Operare: Sincronizare
Sisteme de Operare: SincronizareSisteme de Operare: Sincronizare
Sisteme de Operare: Sincronizare
Alexandru Radovici
 
Web 2016 (07/13) Modelarea datelor. Extragerea datelor cu XPath. Validări XML...
Web 2016 (07/13) Modelarea datelor. Extragerea datelor cu XPath. Validări XML...Web 2016 (07/13) Modelarea datelor. Extragerea datelor cu XPath. Validări XML...
Web 2016 (07/13) Modelarea datelor. Extragerea datelor cu XPath. Validări XML...
Sabin Buraga
 
Sisteme de Operare: Sistemul de Intrare si Iesire
Sisteme de Operare: Sistemul de Intrare si IesireSisteme de Operare: Sistemul de Intrare si Iesire
Sisteme de Operare: Sistemul de Intrare si Iesire
Alexandru Radovici
 
Sisteme de Operare: Procese
Sisteme de Operare: ProceseSisteme de Operare: Procese
Sisteme de Operare: Procese
Alexandru Radovici
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Sabin Buraga
 

What's hot (16)

Un mini-tutorial JavaScript
Un mini-tutorial JavaScriptUn mini-tutorial JavaScript
Un mini-tutorial JavaScript
 
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
 
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTWeb 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma REST
 
CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6
CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6
CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6
 
Node.js: aspecte esențiale
Node.js: aspecte esențialeNode.js: aspecte esențiale
Node.js: aspecte esențiale
 
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
 
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
 
CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5
CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5
CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5
 
CLIW 2017-2018 (8/12) Ingineria dezvoltării aplicaţiilor JavaScript
CLIW 2017-2018 (8/12) Ingineria dezvoltării aplicaţiilor JavaScriptCLIW 2017-2018 (8/12) Ingineria dezvoltării aplicaţiilor JavaScript
CLIW 2017-2018 (8/12) Ingineria dezvoltării aplicaţiilor JavaScript
 
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelWeb 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
 
CLIW 2017-2018 (5/12) Limbajul de programare JavaScript. Aspecte esenţiale
CLIW 2017-2018 (5/12) Limbajul de programare JavaScript. Aspecte esenţialeCLIW 2017-2018 (5/12) Limbajul de programare JavaScript. Aspecte esenţiale
CLIW 2017-2018 (5/12) Limbajul de programare JavaScript. Aspecte esenţiale
 
Sisteme de Operare: Sincronizare
Sisteme de Operare: SincronizareSisteme de Operare: Sincronizare
Sisteme de Operare: Sincronizare
 
Web 2016 (07/13) Modelarea datelor. Extragerea datelor cu XPath. Validări XML...
Web 2016 (07/13) Modelarea datelor. Extragerea datelor cu XPath. Validări XML...Web 2016 (07/13) Modelarea datelor. Extragerea datelor cu XPath. Validări XML...
Web 2016 (07/13) Modelarea datelor. Extragerea datelor cu XPath. Validări XML...
 
Sisteme de Operare: Sistemul de Intrare si Iesire
Sisteme de Operare: Sistemul de Intrare si IesireSisteme de Operare: Sistemul de Intrare si Iesire
Sisteme de Operare: Sistemul de Intrare si Iesire
 
Sisteme de Operare: Procese
Sisteme de Operare: ProceseSisteme de Operare: Procese
Sisteme de Operare: Procese
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
 

Similar to Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări simplificate

WADe 2014—2015 (supliment): Dezvoltare Web via node.js
WADe 2014—2015 (supliment): Dezvoltare Web via node.jsWADe 2014—2015 (supliment): Dezvoltare Web via node.js
WADe 2014—2015 (supliment): Dezvoltare Web via node.js
Sabin Buraga
 
WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...
WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...
WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...
Sabin Buraga
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....
Sabin Buraga
 
CLIW 2015-2016 (7/13) Limbajul de programare JavaScript
CLIW 2015-2016 (7/13) Limbajul de programare JavaScriptCLIW 2015-2016 (7/13) Limbajul de programare JavaScript
CLIW 2015-2016 (7/13) Limbajul de programare JavaScript
Sabin Buraga
 
WADe 2017-2018 Tutorial (1/3): Web Application Development with Node.js – An ...
WADe 2017-2018 Tutorial (1/3): Web Application Development with Node.js – An ...WADe 2017-2018 Tutorial (1/3): Web Application Development with Node.js – An ...
WADe 2017-2018 Tutorial (1/3): Web Application Development with Node.js – An ...
Sabin Buraga
 
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
Sabin Buraga
 
CLIW 2014—2015 (8/12): JavaScript în navigatorul Web
CLIW 2014—2015 (8/12): JavaScript în navigatorul WebCLIW 2014—2015 (8/12): JavaScript în navigatorul Web
CLIW 2014—2015 (8/12): JavaScript în navigatorul Web
Sabin Buraga
 
O lectie de anatomie Web. Disectia unui document HTML
O lectie de anatomie Web. Disectia unui document HTMLO lectie de anatomie Web. Disectia unui document HTML
O lectie de anatomie Web. Disectia unui document HTML
Sabin Buraga
 
CLIW 2015-2016 (11/13) Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2015-2016 (11/13) Programare Web. API-uri JavaScript în contextul HTML5CLIW 2015-2016 (11/13) Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2015-2016 (11/13) Programare Web. API-uri JavaScript în contextul HTML5
Sabin Buraga
 
Javascript ajax tutorial
Javascript ajax tutorialJavascript ajax tutorial
Javascript ajax tutorialVlad Posea
 
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)
Sabin Buraga
 
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5
Sabin Buraga
 
Web 2016 (06/13) Modelarea datelor. Familia XML + spații de nume
Web 2016 (06/13) Modelarea datelor. Familia XML + spații de numeWeb 2016 (06/13) Modelarea datelor. Familia XML + spații de nume
Web 2016 (06/13) Modelarea datelor. Familia XML + spații de nume
Sabin Buraga
 
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSTAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
Sabin Buraga
 
Web 2016 (08/13) Procesarea datelor XML & HTML. Document Object Model
Web 2016 (08/13) Procesarea datelor XML & HTML. Document Object ModelWeb 2016 (08/13) Procesarea datelor XML & HTML. Document Object Model
Web 2016 (08/13) Procesarea datelor XML & HTML. Document Object Model
Sabin Buraga
 
Aplicații Firefox OS cu HTML5
Aplicații Firefox OS cu HTML5Aplicații Firefox OS cu HTML5
Aplicații Firefox OS cu HTML5
Sabin Buraga
 
Procesare Rdf Sub .Net Framework
Procesare Rdf Sub .Net FrameworkProcesare Rdf Sub .Net Framework
Procesare Rdf Sub .Net Framework
dodoshelu
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #2): Arhitectura navi...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #2): Arhitectura navi...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #2): Arhitectura navi...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #2): Arhitectura navi...
Sabin Buraga
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #9): JavaScript în na...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #9): JavaScript în na...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #9): JavaScript în na...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #9): JavaScript în na...
Sabin Buraga
 
CLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScript
CLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScriptCLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScript
CLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScript
Sabin Buraga
 

Similar to Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări simplificate (20)

WADe 2014—2015 (supliment): Dezvoltare Web via node.js
WADe 2014—2015 (supliment): Dezvoltare Web via node.jsWADe 2014—2015 (supliment): Dezvoltare Web via node.js
WADe 2014—2015 (supliment): Dezvoltare Web via node.js
 
WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...
WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...
WADe 2014—2015 (06/12): Semantic Web—Managementul datelor RDF. Interogarea da...
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....
 
CLIW 2015-2016 (7/13) Limbajul de programare JavaScript
CLIW 2015-2016 (7/13) Limbajul de programare JavaScriptCLIW 2015-2016 (7/13) Limbajul de programare JavaScript
CLIW 2015-2016 (7/13) Limbajul de programare JavaScript
 
WADe 2017-2018 Tutorial (1/3): Web Application Development with Node.js – An ...
WADe 2017-2018 Tutorial (1/3): Web Application Development with Node.js – An ...WADe 2017-2018 Tutorial (1/3): Web Application Development with Node.js – An ...
WADe 2017-2018 Tutorial (1/3): Web Application Development with Node.js – An ...
 
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
 
CLIW 2014—2015 (8/12): JavaScript în navigatorul Web
CLIW 2014—2015 (8/12): JavaScript în navigatorul WebCLIW 2014—2015 (8/12): JavaScript în navigatorul Web
CLIW 2014—2015 (8/12): JavaScript în navigatorul Web
 
O lectie de anatomie Web. Disectia unui document HTML
O lectie de anatomie Web. Disectia unui document HTMLO lectie de anatomie Web. Disectia unui document HTML
O lectie de anatomie Web. Disectia unui document HTML
 
CLIW 2015-2016 (11/13) Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2015-2016 (11/13) Programare Web. API-uri JavaScript în contextul HTML5CLIW 2015-2016 (11/13) Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2015-2016 (11/13) Programare Web. API-uri JavaScript în contextul HTML5
 
Javascript ajax tutorial
Javascript ajax tutorialJavascript ajax tutorial
Javascript ajax tutorial
 
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)
 
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5
 
Web 2016 (06/13) Modelarea datelor. Familia XML + spații de nume
Web 2016 (06/13) Modelarea datelor. Familia XML + spații de numeWeb 2016 (06/13) Modelarea datelor. Familia XML + spații de nume
Web 2016 (06/13) Modelarea datelor. Familia XML + spații de nume
 
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSTAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
 
Web 2016 (08/13) Procesarea datelor XML & HTML. Document Object Model
Web 2016 (08/13) Procesarea datelor XML & HTML. Document Object ModelWeb 2016 (08/13) Procesarea datelor XML & HTML. Document Object Model
Web 2016 (08/13) Procesarea datelor XML & HTML. Document Object Model
 
Aplicații Firefox OS cu HTML5
Aplicații Firefox OS cu HTML5Aplicații Firefox OS cu HTML5
Aplicații Firefox OS cu HTML5
 
Procesare Rdf Sub .Net Framework
Procesare Rdf Sub .Net FrameworkProcesare Rdf Sub .Net Framework
Procesare Rdf Sub .Net Framework
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #2): Arhitectura navi...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #2): Arhitectura navi...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #2): Arhitectura navi...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #2): Arhitectura navi...
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #9): JavaScript în na...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #9): JavaScript în na...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #9): JavaScript în na...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #9): JavaScript în na...
 
CLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScript
CLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScriptCLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScript
CLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScript
 

More from Sabin Buraga

Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleWeb 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturale
Sabin Buraga
 
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebWeb 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Sabin Buraga
 
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebWeb 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Sabin Buraga
 
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Sabin Buraga
 
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Sabin Buraga
 
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeWeb 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Sabin Buraga
 
STAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSTAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor Web
Sabin Buraga
 
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSTAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
Sabin Buraga
 
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
Sabin Buraga
 
STAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSTAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.js
Sabin Buraga
 
STAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSTAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului Web
Sabin Buraga
 
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSTAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
Sabin Buraga
 
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5
Sabin Buraga
 
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
Sabin Buraga
 
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
Sabin Buraga
 
STAW 11/12: Performanţa aplicaţiilor Web la nivel de client
STAW 11/12: Performanţa aplicaţiilor Web la nivel de clientSTAW 11/12: Performanţa aplicaţiilor Web la nivel de client
STAW 11/12: Performanţa aplicaţiilor Web la nivel de client
Sabin Buraga
 
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
Sabin Buraga
 
Sabin Buraga: Dezvoltator Web?! (2019)
Sabin Buraga: Dezvoltator Web?! (2019)Sabin Buraga: Dezvoltator Web?! (2019)
Sabin Buraga: Dezvoltator Web?! (2019)
Sabin Buraga
 
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...
Sabin Buraga
 
HCI 2018 (3/10) Design Models, Methodologies and Guidelines
HCI 2018 (3/10) Design Models, Methodologies and GuidelinesHCI 2018 (3/10) Design Models, Methodologies and Guidelines
HCI 2018 (3/10) Design Models, Methodologies and Guidelines
Sabin Buraga
 

More from Sabin Buraga (20)

Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleWeb 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturale
 
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebWeb 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
 
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebWeb 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
 
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
 
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
 
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeWeb 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
 
STAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSTAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor Web
 
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSTAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
 
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
 
STAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSTAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.js
 
STAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSTAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului Web
 
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSTAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
 
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5
 
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
 
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
 
STAW 11/12: Performanţa aplicaţiilor Web la nivel de client
STAW 11/12: Performanţa aplicaţiilor Web la nivel de clientSTAW 11/12: Performanţa aplicaţiilor Web la nivel de client
STAW 11/12: Performanţa aplicaţiilor Web la nivel de client
 
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
 
Sabin Buraga: Dezvoltator Web?! (2019)
Sabin Buraga: Dezvoltator Web?! (2019)Sabin Buraga: Dezvoltator Web?! (2019)
Sabin Buraga: Dezvoltator Web?! (2019)
 
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...
 
HCI 2018 (3/10) Design Models, Methodologies and Guidelines
HCI 2018 (3/10) Design Models, Methodologies and GuidelinesHCI 2018 (3/10) Design Models, Methodologies and Guidelines
HCI 2018 (3/10) Design Models, Methodologies and Guidelines
 

Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări simplificate