Documente Academic
Documente Profesional
Documente Cultură
Tehnologii Web
Gene Wolfe
Scop:
consultarea documentelor XML/HTML
fr ca n prealabil s fie construit
arborele de noduri-obiect
sax: intro
Scop:
consultarea documentelor XML/HTML
fr ca n prealabil s fie construit
arborele de noduri-obiect
documentul nu trebuie stocat complet
n memorie nainte de a fi efectiv prelucrat
sax: intro
http://www.megginson.com/downloads/SAX/
sax: caracterizare
sax: caracterizare
sax: caracterizare
sax: caracterizare
sax: caracterizare
sax: procesare
sax: procesare
sax: procesare
sax: procesare
sax: procesare
metode definite
de programator
sax: procesare
Aplicaie
client
Instanierea
handler-elor
Procesor
SAX
notificare
apariie eveniment
nceput de tag
apelare handler
apariie eveniment
final de tag
apelare handler
etc.
Procesare
trimite
evenimente
SAX
<projects>
<project class="S">
</project>
</projects>
sax: procesare
sax: procesare
detalii la
www.saxproject.org/apidoc/org/xml/sax/package-summary.html
ContentHandler
sax: procesare
Attributes
definete lista atributelor
specificate n cadrul unui tag de nceput
sax: procesare
XMLReader
specific maniera de citire a datelor XML folosind
metode de tratare a evenimentelor (callback-uri)
sax: procesare
ErrorHandler
specific maniera de tratare
a erorilor (fatale) i avertismentelor
pot fi emise excepii precum
SAXException i SAXParseException
sax: procesare
InputSource
ncapsuleaz informaii despre o surs de intrare
de unde se preiau datele XML (e.g., flux de caractere)
sax: procesare
sax: implementri
sax: implementri
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_*( ) funcii PHP: php.net/manual/en/book.xml.php
sax: demo
http://www.safelyendangered.com/comic/road-signs-for-idiots/
HTML
HtmlElement
DOM necesit
ncrcarea complet
a documentului XML
n vederea procesrii
ca arbore
HTML
BodyElement
HTML
ParagraphEle
ment
Text
HTML
DivElement
HTML
ImageElement
characters
start tag
end tag
end tag
<!DOCTYPE catalog [
<!ELEMENT catalog
<!ELEMENT categ
]>
(categ+)>
(#PCDATA | categ)*>
alternative:
XPP XML Pull Parsing
legarea datelor XML
procesare simplificat
avansat
avansat
avansat
avansat
www.xmlpull.org
avansat
avansat
Interfeele push
Procesare read-only
Prelucrare rapid,
via fluxuri de date (streams)
Codul-surs poate fi dificil
de neles
Interfeele pull
Motenesc avantajele
interfeelor push
Evenimentele se consum
conform necesitilor
Programele au o structur
mai clar
avansat
avansat
avansat
alternative
avansat
DOM
acces direct, n stilul pull
SAX
acces secvenial, n stilul push
XPP i .NET XmlTextReader
acces secvenial, n stilul pull
alternative
avansat
<doc>
<xml />
<!-- -->
</doc>
Id
data sets
(tables)
<doc>
<xml />
<!-- -->
</doc>
arbore DOM
(n memorie)
fiier
XML
alternative
avansat
aspecte de interes:
tipul XML pentru valori ale cmpurilor tabelelor
recurgerea la predicate + funcii specifice XML
alternative
avansat
avansat
alternative
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
avansat
avansat
alternative
http://msdn.microsoft.com/en-us/library/vstudio/bb397926.aspx
avansat
var proiecteS =
// via o expresie LINQ, prelum 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 numrul de studeni
orderby (String) p.Element ("stud")
// selectnd doar titlul acestora
select (String) p.Element ("title");
avansat
alternative
avansat
alternative
alternative
alternative
alternative
alternative
alternative
alternative
Aspect de interes:
ignorarea erorilor de sintax
documente bine formatate (well formed)
versus
documente valide
procesare html
Aspect de interes:
ignorarea erorilor de sintax
malformed markup
sunt relativ rare cazurile n care documentele HTML
sunt scrise/generate corect
procesare html
procesare html
procesare html
procesri XML: de la SAX la XPP i Simple XML
instrumente de prelucrare a documentelor HTML
rezumat