Upload
jean-marie-renouard
View
205
Download
4
Embed Size (px)
DESCRIPTION
Présentation de la gestion de fichier XML avec PHP5
Citation preview
Jean-Marie Renouard
LightPath 2014copy
Le logo PHP est du domaine public httpcommonswikimediaorgwikiFilePHP-logosvg
Ce document est licencieacute sous licence Attribution-NonCommercial-ShareAlike
CC BY-NC-SA
Plus de deacutetails httpcreativecommonsorglicensesby-nc-sa30fr
LightPath 2014copy - httpwwwjmrenouardfr 2
DOM chargement et eacutecriture
DOM validation XML DTD
DOM validation XML scheacutema
DOM conversion en tableau
DOM recherche drsquoeacuteleacutement
DOM recherche XPATH
SimpleXML chargement et eacutecriture
SimpleXML recherche drsquoeacuteleacutement
LightPath 2014copy - httpwwwjmrenouardfr 3
LightPath 2014copy - httpwwwjmrenouardfr 4
DOM Lecture et creacuteation drsquoun arbre syntaxique
Pas de lecture de flux
Tout est lu puis analyseacute
Facilite la manipulation
Lent quand le fichier XML est important
Consommation meacutemoire importante
LightPath 2014copy - httpwwwjmrenouardfr 5
Fichier XML exemple httpwwww3schoolscomXMLsimplexml
Classe PHP DOMDocument httpphpnetmanualfrclassdomdocumentphp
Meacutethode load URL httpxml Fichier
Meacutethode loadXML et loadHTML Chaicircne de caractegravere
LightPath 2014copy - httpwwwjmrenouardfr 6
ltphp
$dom = new DOMDocument()
$dom-gtload(httpwwww3schoolscomXMLsimplexml)
$dom-gtload(lsquocsimplexml)
$dom-gtgetElementsByTagName(lsquofood)
$i++
foreach ($params as $param)
echo laquo laquo $param-gtnodeName raquo = laquo $param-gtnodeValue
gt
LightPath 2014copy - httpwwwjmrenouardfr 7
ltphp
$dom = new DOMDocument()
$dom-gtload(httpwwww3schoolscomXMLsimplexml)
$dom-gtload(lsquocsimplexml)
$params=$dom-gtgetElementsByTagName(lsquofood)
foreach ($params as $param)
echo laquo laquo $param-gtnodeName raquo = laquo $param-gtnodeValue
gt
LightPath 2014copy - httpwwwjmrenouardfr 8
Meacutethode save() Fichier agrave sauvegarder
Meacutethodes saveHTML() et saveXML() Sauvegarde dans une chaicircne de caractegravere
LightPath 2014copy - httpwwwjmrenouardfr 9
Validation du format XML Si DTD =gt Validation par DTD
Meacutethode de DOMDocument
Validate()
ltphp $dom = new DOMDocument $dom-gtLoad(bookxml) if ($dom-gtvalidate()) echo Ce document est valide n
gt
LightPath 2014copy - httpwwwjmrenouardfr 10
Deacutefinition en XML dun contrat que doit
respecter un document XML
Validation formelle de la structure
Validation du format des donneacutees
LightPath 2014copy - httpwwwjmrenouardfr 11
Meacutethode de DOMDocument schemaValidate()
ltphp $dom = new DOMDocument $dom-gtLoad(bookxml) if ($dom-gtschemaValidate(lsquoschemaxmlrsquo)) echo Ce document est valide XMLSchema n
gt
LightPath 2014copy - httpwwwjmrenouardfr 12
ll est possible de traduire une document XML en tableau PHP
Facilite la lecture et la manipulation
Exemple WC1MyDOMDocumentphp
LightPath 2014copy - httpwwwjmrenouardfr 13
DOMDocument 2 meacutethodes
getElementById() Trouve un eacuteleacutement par identifiant Renvoie un DOMElement
getElementsByTagName() Trouve une liste de nœud Renvoie une DOMNodeList
LightPath 2014copy - httpwwwjmrenouardfr 14
Il srsquoagit drsquoun tag
DOMElement $domElement=new DOMElement(laquo food raquo)
$domElement-gttagName
$domElement-gtgetAttribute()
$domElement-gtgetElementsByTagName(lsquorsquo)
LightPath 2014copy - httpwwwjmrenouardfr 15
$nodeList-gtlength
DOMNode $node=$nodeList-gtitem($i)
$node-gtnodeName nom du nœud
$node-gtnodeValue valeur du nœud
$node-gttextContent contenu du nœud
LightPath 2014copy - httpwwwjmrenouardfr 16
Moyen deffectuer de la recherche dans des
documents XML
Syntaxe riche
Efficace et standardiseacute
LightPath 2014copy - httpwwwjmrenouardfr 17
Classe DOMXPath
2 meacutethodes evaluate() eacutevaluation et comptage
query() recherche des eacuteleacutements
LightPath 2014copy - httpwwwjmrenouardfr 18
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $tbody = $doc-gtgetElementsByTagName(tbody)-gtitem(0) notre requecircte est relative au noeud tbody $query = count(rowentry[ = en]) $entries = $xpath-gtevaluate($query $tbody) echo Il y a $entries livres anglaisn gt
LightPath 2014copy - httpwwwjmrenouardfr 19
DOMXPtah-gtquery renvoie un objet DOMNodeList
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $query = booktitle $entries = $xpath-gtquery($query) foreach ($entries as $entry) echo Livre trouveacute $entry-gtnodeValue n
gt
LightPath 2014copy - httpwwwjmrenouardfr 20
LightPath 2014copy - httpwwwjmrenouardfr 21
Plus simple que DOM
Utilise la librairie libXML
Plus rapide plus simple
LibXML librairie XML de reacutefeacuterence
LightPath 2014copy - httpwwwjmrenouardfr 22
simplexml_import_dom Conversion drsquoun DOMDocument en
SimpleXMLElement
simple_load_file Conversion un fichier XML en objet
simplexml_load_string Conversion drsquoune chaicircne XML en objet
LightPath 2014copy - httpwwwjmrenouardfr 23
Lrsquoobjet SimpleXMLElement Meacutethode asXML($nomDeFichier)
Extraction drsquoune chaicircne de caractegravere XML
file_put_contents pour eacutecrire dans un fichier
LightPath 2014copy - httpwwwjmrenouardfr 24
Expression XPath possible
Faccedilon la plus rapide
ltphp $xml= simple_load_file(lsquobookxmlrsquo) $result = $xml-gtxpath(booktitle)
while(list( $node) = each($result))
echo $node-gtasXML() gt
LightPath 2014copy - httpwwwjmrenouardfr 25
nom recherche de la balise nom
fils recherche fils directs
nœud recherche fils directs et indirects
wildcard ()
| expression drsquoun Ou
eacuteleacutement courant
eacuteleacutement parent
attr recherche drsquoun eacuteleacutement avec attribut attr
LightPath 2014copy - httpwwwjmrenouardfr 26
id=lsquo5rsquo recherche drsquoun eacuteleacutement avec attribut id valant 5
Book[id=lsquo5rsquo] recherche drsquoun eacuteleacutement book avec un attribut id valant 5
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28
Le logo PHP est du domaine public httpcommonswikimediaorgwikiFilePHP-logosvg
Ce document est licencieacute sous licence Attribution-NonCommercial-ShareAlike
CC BY-NC-SA
Plus de deacutetails httpcreativecommonsorglicensesby-nc-sa30fr
LightPath 2014copy - httpwwwjmrenouardfr 2
DOM chargement et eacutecriture
DOM validation XML DTD
DOM validation XML scheacutema
DOM conversion en tableau
DOM recherche drsquoeacuteleacutement
DOM recherche XPATH
SimpleXML chargement et eacutecriture
SimpleXML recherche drsquoeacuteleacutement
LightPath 2014copy - httpwwwjmrenouardfr 3
LightPath 2014copy - httpwwwjmrenouardfr 4
DOM Lecture et creacuteation drsquoun arbre syntaxique
Pas de lecture de flux
Tout est lu puis analyseacute
Facilite la manipulation
Lent quand le fichier XML est important
Consommation meacutemoire importante
LightPath 2014copy - httpwwwjmrenouardfr 5
Fichier XML exemple httpwwww3schoolscomXMLsimplexml
Classe PHP DOMDocument httpphpnetmanualfrclassdomdocumentphp
Meacutethode load URL httpxml Fichier
Meacutethode loadXML et loadHTML Chaicircne de caractegravere
LightPath 2014copy - httpwwwjmrenouardfr 6
ltphp
$dom = new DOMDocument()
$dom-gtload(httpwwww3schoolscomXMLsimplexml)
$dom-gtload(lsquocsimplexml)
$dom-gtgetElementsByTagName(lsquofood)
$i++
foreach ($params as $param)
echo laquo laquo $param-gtnodeName raquo = laquo $param-gtnodeValue
gt
LightPath 2014copy - httpwwwjmrenouardfr 7
ltphp
$dom = new DOMDocument()
$dom-gtload(httpwwww3schoolscomXMLsimplexml)
$dom-gtload(lsquocsimplexml)
$params=$dom-gtgetElementsByTagName(lsquofood)
foreach ($params as $param)
echo laquo laquo $param-gtnodeName raquo = laquo $param-gtnodeValue
gt
LightPath 2014copy - httpwwwjmrenouardfr 8
Meacutethode save() Fichier agrave sauvegarder
Meacutethodes saveHTML() et saveXML() Sauvegarde dans une chaicircne de caractegravere
LightPath 2014copy - httpwwwjmrenouardfr 9
Validation du format XML Si DTD =gt Validation par DTD
Meacutethode de DOMDocument
Validate()
ltphp $dom = new DOMDocument $dom-gtLoad(bookxml) if ($dom-gtvalidate()) echo Ce document est valide n
gt
LightPath 2014copy - httpwwwjmrenouardfr 10
Deacutefinition en XML dun contrat que doit
respecter un document XML
Validation formelle de la structure
Validation du format des donneacutees
LightPath 2014copy - httpwwwjmrenouardfr 11
Meacutethode de DOMDocument schemaValidate()
ltphp $dom = new DOMDocument $dom-gtLoad(bookxml) if ($dom-gtschemaValidate(lsquoschemaxmlrsquo)) echo Ce document est valide XMLSchema n
gt
LightPath 2014copy - httpwwwjmrenouardfr 12
ll est possible de traduire une document XML en tableau PHP
Facilite la lecture et la manipulation
Exemple WC1MyDOMDocumentphp
LightPath 2014copy - httpwwwjmrenouardfr 13
DOMDocument 2 meacutethodes
getElementById() Trouve un eacuteleacutement par identifiant Renvoie un DOMElement
getElementsByTagName() Trouve une liste de nœud Renvoie une DOMNodeList
LightPath 2014copy - httpwwwjmrenouardfr 14
Il srsquoagit drsquoun tag
DOMElement $domElement=new DOMElement(laquo food raquo)
$domElement-gttagName
$domElement-gtgetAttribute()
$domElement-gtgetElementsByTagName(lsquorsquo)
LightPath 2014copy - httpwwwjmrenouardfr 15
$nodeList-gtlength
DOMNode $node=$nodeList-gtitem($i)
$node-gtnodeName nom du nœud
$node-gtnodeValue valeur du nœud
$node-gttextContent contenu du nœud
LightPath 2014copy - httpwwwjmrenouardfr 16
Moyen deffectuer de la recherche dans des
documents XML
Syntaxe riche
Efficace et standardiseacute
LightPath 2014copy - httpwwwjmrenouardfr 17
Classe DOMXPath
2 meacutethodes evaluate() eacutevaluation et comptage
query() recherche des eacuteleacutements
LightPath 2014copy - httpwwwjmrenouardfr 18
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $tbody = $doc-gtgetElementsByTagName(tbody)-gtitem(0) notre requecircte est relative au noeud tbody $query = count(rowentry[ = en]) $entries = $xpath-gtevaluate($query $tbody) echo Il y a $entries livres anglaisn gt
LightPath 2014copy - httpwwwjmrenouardfr 19
DOMXPtah-gtquery renvoie un objet DOMNodeList
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $query = booktitle $entries = $xpath-gtquery($query) foreach ($entries as $entry) echo Livre trouveacute $entry-gtnodeValue n
gt
LightPath 2014copy - httpwwwjmrenouardfr 20
LightPath 2014copy - httpwwwjmrenouardfr 21
Plus simple que DOM
Utilise la librairie libXML
Plus rapide plus simple
LibXML librairie XML de reacutefeacuterence
LightPath 2014copy - httpwwwjmrenouardfr 22
simplexml_import_dom Conversion drsquoun DOMDocument en
SimpleXMLElement
simple_load_file Conversion un fichier XML en objet
simplexml_load_string Conversion drsquoune chaicircne XML en objet
LightPath 2014copy - httpwwwjmrenouardfr 23
Lrsquoobjet SimpleXMLElement Meacutethode asXML($nomDeFichier)
Extraction drsquoune chaicircne de caractegravere XML
file_put_contents pour eacutecrire dans un fichier
LightPath 2014copy - httpwwwjmrenouardfr 24
Expression XPath possible
Faccedilon la plus rapide
ltphp $xml= simple_load_file(lsquobookxmlrsquo) $result = $xml-gtxpath(booktitle)
while(list( $node) = each($result))
echo $node-gtasXML() gt
LightPath 2014copy - httpwwwjmrenouardfr 25
nom recherche de la balise nom
fils recherche fils directs
nœud recherche fils directs et indirects
wildcard ()
| expression drsquoun Ou
eacuteleacutement courant
eacuteleacutement parent
attr recherche drsquoun eacuteleacutement avec attribut attr
LightPath 2014copy - httpwwwjmrenouardfr 26
id=lsquo5rsquo recherche drsquoun eacuteleacutement avec attribut id valant 5
Book[id=lsquo5rsquo] recherche drsquoun eacuteleacutement book avec un attribut id valant 5
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28
DOM chargement et eacutecriture
DOM validation XML DTD
DOM validation XML scheacutema
DOM conversion en tableau
DOM recherche drsquoeacuteleacutement
DOM recherche XPATH
SimpleXML chargement et eacutecriture
SimpleXML recherche drsquoeacuteleacutement
LightPath 2014copy - httpwwwjmrenouardfr 3
LightPath 2014copy - httpwwwjmrenouardfr 4
DOM Lecture et creacuteation drsquoun arbre syntaxique
Pas de lecture de flux
Tout est lu puis analyseacute
Facilite la manipulation
Lent quand le fichier XML est important
Consommation meacutemoire importante
LightPath 2014copy - httpwwwjmrenouardfr 5
Fichier XML exemple httpwwww3schoolscomXMLsimplexml
Classe PHP DOMDocument httpphpnetmanualfrclassdomdocumentphp
Meacutethode load URL httpxml Fichier
Meacutethode loadXML et loadHTML Chaicircne de caractegravere
LightPath 2014copy - httpwwwjmrenouardfr 6
ltphp
$dom = new DOMDocument()
$dom-gtload(httpwwww3schoolscomXMLsimplexml)
$dom-gtload(lsquocsimplexml)
$dom-gtgetElementsByTagName(lsquofood)
$i++
foreach ($params as $param)
echo laquo laquo $param-gtnodeName raquo = laquo $param-gtnodeValue
gt
LightPath 2014copy - httpwwwjmrenouardfr 7
ltphp
$dom = new DOMDocument()
$dom-gtload(httpwwww3schoolscomXMLsimplexml)
$dom-gtload(lsquocsimplexml)
$params=$dom-gtgetElementsByTagName(lsquofood)
foreach ($params as $param)
echo laquo laquo $param-gtnodeName raquo = laquo $param-gtnodeValue
gt
LightPath 2014copy - httpwwwjmrenouardfr 8
Meacutethode save() Fichier agrave sauvegarder
Meacutethodes saveHTML() et saveXML() Sauvegarde dans une chaicircne de caractegravere
LightPath 2014copy - httpwwwjmrenouardfr 9
Validation du format XML Si DTD =gt Validation par DTD
Meacutethode de DOMDocument
Validate()
ltphp $dom = new DOMDocument $dom-gtLoad(bookxml) if ($dom-gtvalidate()) echo Ce document est valide n
gt
LightPath 2014copy - httpwwwjmrenouardfr 10
Deacutefinition en XML dun contrat que doit
respecter un document XML
Validation formelle de la structure
Validation du format des donneacutees
LightPath 2014copy - httpwwwjmrenouardfr 11
Meacutethode de DOMDocument schemaValidate()
ltphp $dom = new DOMDocument $dom-gtLoad(bookxml) if ($dom-gtschemaValidate(lsquoschemaxmlrsquo)) echo Ce document est valide XMLSchema n
gt
LightPath 2014copy - httpwwwjmrenouardfr 12
ll est possible de traduire une document XML en tableau PHP
Facilite la lecture et la manipulation
Exemple WC1MyDOMDocumentphp
LightPath 2014copy - httpwwwjmrenouardfr 13
DOMDocument 2 meacutethodes
getElementById() Trouve un eacuteleacutement par identifiant Renvoie un DOMElement
getElementsByTagName() Trouve une liste de nœud Renvoie une DOMNodeList
LightPath 2014copy - httpwwwjmrenouardfr 14
Il srsquoagit drsquoun tag
DOMElement $domElement=new DOMElement(laquo food raquo)
$domElement-gttagName
$domElement-gtgetAttribute()
$domElement-gtgetElementsByTagName(lsquorsquo)
LightPath 2014copy - httpwwwjmrenouardfr 15
$nodeList-gtlength
DOMNode $node=$nodeList-gtitem($i)
$node-gtnodeName nom du nœud
$node-gtnodeValue valeur du nœud
$node-gttextContent contenu du nœud
LightPath 2014copy - httpwwwjmrenouardfr 16
Moyen deffectuer de la recherche dans des
documents XML
Syntaxe riche
Efficace et standardiseacute
LightPath 2014copy - httpwwwjmrenouardfr 17
Classe DOMXPath
2 meacutethodes evaluate() eacutevaluation et comptage
query() recherche des eacuteleacutements
LightPath 2014copy - httpwwwjmrenouardfr 18
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $tbody = $doc-gtgetElementsByTagName(tbody)-gtitem(0) notre requecircte est relative au noeud tbody $query = count(rowentry[ = en]) $entries = $xpath-gtevaluate($query $tbody) echo Il y a $entries livres anglaisn gt
LightPath 2014copy - httpwwwjmrenouardfr 19
DOMXPtah-gtquery renvoie un objet DOMNodeList
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $query = booktitle $entries = $xpath-gtquery($query) foreach ($entries as $entry) echo Livre trouveacute $entry-gtnodeValue n
gt
LightPath 2014copy - httpwwwjmrenouardfr 20
LightPath 2014copy - httpwwwjmrenouardfr 21
Plus simple que DOM
Utilise la librairie libXML
Plus rapide plus simple
LibXML librairie XML de reacutefeacuterence
LightPath 2014copy - httpwwwjmrenouardfr 22
simplexml_import_dom Conversion drsquoun DOMDocument en
SimpleXMLElement
simple_load_file Conversion un fichier XML en objet
simplexml_load_string Conversion drsquoune chaicircne XML en objet
LightPath 2014copy - httpwwwjmrenouardfr 23
Lrsquoobjet SimpleXMLElement Meacutethode asXML($nomDeFichier)
Extraction drsquoune chaicircne de caractegravere XML
file_put_contents pour eacutecrire dans un fichier
LightPath 2014copy - httpwwwjmrenouardfr 24
Expression XPath possible
Faccedilon la plus rapide
ltphp $xml= simple_load_file(lsquobookxmlrsquo) $result = $xml-gtxpath(booktitle)
while(list( $node) = each($result))
echo $node-gtasXML() gt
LightPath 2014copy - httpwwwjmrenouardfr 25
nom recherche de la balise nom
fils recherche fils directs
nœud recherche fils directs et indirects
wildcard ()
| expression drsquoun Ou
eacuteleacutement courant
eacuteleacutement parent
attr recherche drsquoun eacuteleacutement avec attribut attr
LightPath 2014copy - httpwwwjmrenouardfr 26
id=lsquo5rsquo recherche drsquoun eacuteleacutement avec attribut id valant 5
Book[id=lsquo5rsquo] recherche drsquoun eacuteleacutement book avec un attribut id valant 5
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28
LightPath 2014copy - httpwwwjmrenouardfr 4
DOM Lecture et creacuteation drsquoun arbre syntaxique
Pas de lecture de flux
Tout est lu puis analyseacute
Facilite la manipulation
Lent quand le fichier XML est important
Consommation meacutemoire importante
LightPath 2014copy - httpwwwjmrenouardfr 5
Fichier XML exemple httpwwww3schoolscomXMLsimplexml
Classe PHP DOMDocument httpphpnetmanualfrclassdomdocumentphp
Meacutethode load URL httpxml Fichier
Meacutethode loadXML et loadHTML Chaicircne de caractegravere
LightPath 2014copy - httpwwwjmrenouardfr 6
ltphp
$dom = new DOMDocument()
$dom-gtload(httpwwww3schoolscomXMLsimplexml)
$dom-gtload(lsquocsimplexml)
$dom-gtgetElementsByTagName(lsquofood)
$i++
foreach ($params as $param)
echo laquo laquo $param-gtnodeName raquo = laquo $param-gtnodeValue
gt
LightPath 2014copy - httpwwwjmrenouardfr 7
ltphp
$dom = new DOMDocument()
$dom-gtload(httpwwww3schoolscomXMLsimplexml)
$dom-gtload(lsquocsimplexml)
$params=$dom-gtgetElementsByTagName(lsquofood)
foreach ($params as $param)
echo laquo laquo $param-gtnodeName raquo = laquo $param-gtnodeValue
gt
LightPath 2014copy - httpwwwjmrenouardfr 8
Meacutethode save() Fichier agrave sauvegarder
Meacutethodes saveHTML() et saveXML() Sauvegarde dans une chaicircne de caractegravere
LightPath 2014copy - httpwwwjmrenouardfr 9
Validation du format XML Si DTD =gt Validation par DTD
Meacutethode de DOMDocument
Validate()
ltphp $dom = new DOMDocument $dom-gtLoad(bookxml) if ($dom-gtvalidate()) echo Ce document est valide n
gt
LightPath 2014copy - httpwwwjmrenouardfr 10
Deacutefinition en XML dun contrat que doit
respecter un document XML
Validation formelle de la structure
Validation du format des donneacutees
LightPath 2014copy - httpwwwjmrenouardfr 11
Meacutethode de DOMDocument schemaValidate()
ltphp $dom = new DOMDocument $dom-gtLoad(bookxml) if ($dom-gtschemaValidate(lsquoschemaxmlrsquo)) echo Ce document est valide XMLSchema n
gt
LightPath 2014copy - httpwwwjmrenouardfr 12
ll est possible de traduire une document XML en tableau PHP
Facilite la lecture et la manipulation
Exemple WC1MyDOMDocumentphp
LightPath 2014copy - httpwwwjmrenouardfr 13
DOMDocument 2 meacutethodes
getElementById() Trouve un eacuteleacutement par identifiant Renvoie un DOMElement
getElementsByTagName() Trouve une liste de nœud Renvoie une DOMNodeList
LightPath 2014copy - httpwwwjmrenouardfr 14
Il srsquoagit drsquoun tag
DOMElement $domElement=new DOMElement(laquo food raquo)
$domElement-gttagName
$domElement-gtgetAttribute()
$domElement-gtgetElementsByTagName(lsquorsquo)
LightPath 2014copy - httpwwwjmrenouardfr 15
$nodeList-gtlength
DOMNode $node=$nodeList-gtitem($i)
$node-gtnodeName nom du nœud
$node-gtnodeValue valeur du nœud
$node-gttextContent contenu du nœud
LightPath 2014copy - httpwwwjmrenouardfr 16
Moyen deffectuer de la recherche dans des
documents XML
Syntaxe riche
Efficace et standardiseacute
LightPath 2014copy - httpwwwjmrenouardfr 17
Classe DOMXPath
2 meacutethodes evaluate() eacutevaluation et comptage
query() recherche des eacuteleacutements
LightPath 2014copy - httpwwwjmrenouardfr 18
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $tbody = $doc-gtgetElementsByTagName(tbody)-gtitem(0) notre requecircte est relative au noeud tbody $query = count(rowentry[ = en]) $entries = $xpath-gtevaluate($query $tbody) echo Il y a $entries livres anglaisn gt
LightPath 2014copy - httpwwwjmrenouardfr 19
DOMXPtah-gtquery renvoie un objet DOMNodeList
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $query = booktitle $entries = $xpath-gtquery($query) foreach ($entries as $entry) echo Livre trouveacute $entry-gtnodeValue n
gt
LightPath 2014copy - httpwwwjmrenouardfr 20
LightPath 2014copy - httpwwwjmrenouardfr 21
Plus simple que DOM
Utilise la librairie libXML
Plus rapide plus simple
LibXML librairie XML de reacutefeacuterence
LightPath 2014copy - httpwwwjmrenouardfr 22
simplexml_import_dom Conversion drsquoun DOMDocument en
SimpleXMLElement
simple_load_file Conversion un fichier XML en objet
simplexml_load_string Conversion drsquoune chaicircne XML en objet
LightPath 2014copy - httpwwwjmrenouardfr 23
Lrsquoobjet SimpleXMLElement Meacutethode asXML($nomDeFichier)
Extraction drsquoune chaicircne de caractegravere XML
file_put_contents pour eacutecrire dans un fichier
LightPath 2014copy - httpwwwjmrenouardfr 24
Expression XPath possible
Faccedilon la plus rapide
ltphp $xml= simple_load_file(lsquobookxmlrsquo) $result = $xml-gtxpath(booktitle)
while(list( $node) = each($result))
echo $node-gtasXML() gt
LightPath 2014copy - httpwwwjmrenouardfr 25
nom recherche de la balise nom
fils recherche fils directs
nœud recherche fils directs et indirects
wildcard ()
| expression drsquoun Ou
eacuteleacutement courant
eacuteleacutement parent
attr recherche drsquoun eacuteleacutement avec attribut attr
LightPath 2014copy - httpwwwjmrenouardfr 26
id=lsquo5rsquo recherche drsquoun eacuteleacutement avec attribut id valant 5
Book[id=lsquo5rsquo] recherche drsquoun eacuteleacutement book avec un attribut id valant 5
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28
DOM Lecture et creacuteation drsquoun arbre syntaxique
Pas de lecture de flux
Tout est lu puis analyseacute
Facilite la manipulation
Lent quand le fichier XML est important
Consommation meacutemoire importante
LightPath 2014copy - httpwwwjmrenouardfr 5
Fichier XML exemple httpwwww3schoolscomXMLsimplexml
Classe PHP DOMDocument httpphpnetmanualfrclassdomdocumentphp
Meacutethode load URL httpxml Fichier
Meacutethode loadXML et loadHTML Chaicircne de caractegravere
LightPath 2014copy - httpwwwjmrenouardfr 6
ltphp
$dom = new DOMDocument()
$dom-gtload(httpwwww3schoolscomXMLsimplexml)
$dom-gtload(lsquocsimplexml)
$dom-gtgetElementsByTagName(lsquofood)
$i++
foreach ($params as $param)
echo laquo laquo $param-gtnodeName raquo = laquo $param-gtnodeValue
gt
LightPath 2014copy - httpwwwjmrenouardfr 7
ltphp
$dom = new DOMDocument()
$dom-gtload(httpwwww3schoolscomXMLsimplexml)
$dom-gtload(lsquocsimplexml)
$params=$dom-gtgetElementsByTagName(lsquofood)
foreach ($params as $param)
echo laquo laquo $param-gtnodeName raquo = laquo $param-gtnodeValue
gt
LightPath 2014copy - httpwwwjmrenouardfr 8
Meacutethode save() Fichier agrave sauvegarder
Meacutethodes saveHTML() et saveXML() Sauvegarde dans une chaicircne de caractegravere
LightPath 2014copy - httpwwwjmrenouardfr 9
Validation du format XML Si DTD =gt Validation par DTD
Meacutethode de DOMDocument
Validate()
ltphp $dom = new DOMDocument $dom-gtLoad(bookxml) if ($dom-gtvalidate()) echo Ce document est valide n
gt
LightPath 2014copy - httpwwwjmrenouardfr 10
Deacutefinition en XML dun contrat que doit
respecter un document XML
Validation formelle de la structure
Validation du format des donneacutees
LightPath 2014copy - httpwwwjmrenouardfr 11
Meacutethode de DOMDocument schemaValidate()
ltphp $dom = new DOMDocument $dom-gtLoad(bookxml) if ($dom-gtschemaValidate(lsquoschemaxmlrsquo)) echo Ce document est valide XMLSchema n
gt
LightPath 2014copy - httpwwwjmrenouardfr 12
ll est possible de traduire une document XML en tableau PHP
Facilite la lecture et la manipulation
Exemple WC1MyDOMDocumentphp
LightPath 2014copy - httpwwwjmrenouardfr 13
DOMDocument 2 meacutethodes
getElementById() Trouve un eacuteleacutement par identifiant Renvoie un DOMElement
getElementsByTagName() Trouve une liste de nœud Renvoie une DOMNodeList
LightPath 2014copy - httpwwwjmrenouardfr 14
Il srsquoagit drsquoun tag
DOMElement $domElement=new DOMElement(laquo food raquo)
$domElement-gttagName
$domElement-gtgetAttribute()
$domElement-gtgetElementsByTagName(lsquorsquo)
LightPath 2014copy - httpwwwjmrenouardfr 15
$nodeList-gtlength
DOMNode $node=$nodeList-gtitem($i)
$node-gtnodeName nom du nœud
$node-gtnodeValue valeur du nœud
$node-gttextContent contenu du nœud
LightPath 2014copy - httpwwwjmrenouardfr 16
Moyen deffectuer de la recherche dans des
documents XML
Syntaxe riche
Efficace et standardiseacute
LightPath 2014copy - httpwwwjmrenouardfr 17
Classe DOMXPath
2 meacutethodes evaluate() eacutevaluation et comptage
query() recherche des eacuteleacutements
LightPath 2014copy - httpwwwjmrenouardfr 18
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $tbody = $doc-gtgetElementsByTagName(tbody)-gtitem(0) notre requecircte est relative au noeud tbody $query = count(rowentry[ = en]) $entries = $xpath-gtevaluate($query $tbody) echo Il y a $entries livres anglaisn gt
LightPath 2014copy - httpwwwjmrenouardfr 19
DOMXPtah-gtquery renvoie un objet DOMNodeList
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $query = booktitle $entries = $xpath-gtquery($query) foreach ($entries as $entry) echo Livre trouveacute $entry-gtnodeValue n
gt
LightPath 2014copy - httpwwwjmrenouardfr 20
LightPath 2014copy - httpwwwjmrenouardfr 21
Plus simple que DOM
Utilise la librairie libXML
Plus rapide plus simple
LibXML librairie XML de reacutefeacuterence
LightPath 2014copy - httpwwwjmrenouardfr 22
simplexml_import_dom Conversion drsquoun DOMDocument en
SimpleXMLElement
simple_load_file Conversion un fichier XML en objet
simplexml_load_string Conversion drsquoune chaicircne XML en objet
LightPath 2014copy - httpwwwjmrenouardfr 23
Lrsquoobjet SimpleXMLElement Meacutethode asXML($nomDeFichier)
Extraction drsquoune chaicircne de caractegravere XML
file_put_contents pour eacutecrire dans un fichier
LightPath 2014copy - httpwwwjmrenouardfr 24
Expression XPath possible
Faccedilon la plus rapide
ltphp $xml= simple_load_file(lsquobookxmlrsquo) $result = $xml-gtxpath(booktitle)
while(list( $node) = each($result))
echo $node-gtasXML() gt
LightPath 2014copy - httpwwwjmrenouardfr 25
nom recherche de la balise nom
fils recherche fils directs
nœud recherche fils directs et indirects
wildcard ()
| expression drsquoun Ou
eacuteleacutement courant
eacuteleacutement parent
attr recherche drsquoun eacuteleacutement avec attribut attr
LightPath 2014copy - httpwwwjmrenouardfr 26
id=lsquo5rsquo recherche drsquoun eacuteleacutement avec attribut id valant 5
Book[id=lsquo5rsquo] recherche drsquoun eacuteleacutement book avec un attribut id valant 5
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28
Fichier XML exemple httpwwww3schoolscomXMLsimplexml
Classe PHP DOMDocument httpphpnetmanualfrclassdomdocumentphp
Meacutethode load URL httpxml Fichier
Meacutethode loadXML et loadHTML Chaicircne de caractegravere
LightPath 2014copy - httpwwwjmrenouardfr 6
ltphp
$dom = new DOMDocument()
$dom-gtload(httpwwww3schoolscomXMLsimplexml)
$dom-gtload(lsquocsimplexml)
$dom-gtgetElementsByTagName(lsquofood)
$i++
foreach ($params as $param)
echo laquo laquo $param-gtnodeName raquo = laquo $param-gtnodeValue
gt
LightPath 2014copy - httpwwwjmrenouardfr 7
ltphp
$dom = new DOMDocument()
$dom-gtload(httpwwww3schoolscomXMLsimplexml)
$dom-gtload(lsquocsimplexml)
$params=$dom-gtgetElementsByTagName(lsquofood)
foreach ($params as $param)
echo laquo laquo $param-gtnodeName raquo = laquo $param-gtnodeValue
gt
LightPath 2014copy - httpwwwjmrenouardfr 8
Meacutethode save() Fichier agrave sauvegarder
Meacutethodes saveHTML() et saveXML() Sauvegarde dans une chaicircne de caractegravere
LightPath 2014copy - httpwwwjmrenouardfr 9
Validation du format XML Si DTD =gt Validation par DTD
Meacutethode de DOMDocument
Validate()
ltphp $dom = new DOMDocument $dom-gtLoad(bookxml) if ($dom-gtvalidate()) echo Ce document est valide n
gt
LightPath 2014copy - httpwwwjmrenouardfr 10
Deacutefinition en XML dun contrat que doit
respecter un document XML
Validation formelle de la structure
Validation du format des donneacutees
LightPath 2014copy - httpwwwjmrenouardfr 11
Meacutethode de DOMDocument schemaValidate()
ltphp $dom = new DOMDocument $dom-gtLoad(bookxml) if ($dom-gtschemaValidate(lsquoschemaxmlrsquo)) echo Ce document est valide XMLSchema n
gt
LightPath 2014copy - httpwwwjmrenouardfr 12
ll est possible de traduire une document XML en tableau PHP
Facilite la lecture et la manipulation
Exemple WC1MyDOMDocumentphp
LightPath 2014copy - httpwwwjmrenouardfr 13
DOMDocument 2 meacutethodes
getElementById() Trouve un eacuteleacutement par identifiant Renvoie un DOMElement
getElementsByTagName() Trouve une liste de nœud Renvoie une DOMNodeList
LightPath 2014copy - httpwwwjmrenouardfr 14
Il srsquoagit drsquoun tag
DOMElement $domElement=new DOMElement(laquo food raquo)
$domElement-gttagName
$domElement-gtgetAttribute()
$domElement-gtgetElementsByTagName(lsquorsquo)
LightPath 2014copy - httpwwwjmrenouardfr 15
$nodeList-gtlength
DOMNode $node=$nodeList-gtitem($i)
$node-gtnodeName nom du nœud
$node-gtnodeValue valeur du nœud
$node-gttextContent contenu du nœud
LightPath 2014copy - httpwwwjmrenouardfr 16
Moyen deffectuer de la recherche dans des
documents XML
Syntaxe riche
Efficace et standardiseacute
LightPath 2014copy - httpwwwjmrenouardfr 17
Classe DOMXPath
2 meacutethodes evaluate() eacutevaluation et comptage
query() recherche des eacuteleacutements
LightPath 2014copy - httpwwwjmrenouardfr 18
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $tbody = $doc-gtgetElementsByTagName(tbody)-gtitem(0) notre requecircte est relative au noeud tbody $query = count(rowentry[ = en]) $entries = $xpath-gtevaluate($query $tbody) echo Il y a $entries livres anglaisn gt
LightPath 2014copy - httpwwwjmrenouardfr 19
DOMXPtah-gtquery renvoie un objet DOMNodeList
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $query = booktitle $entries = $xpath-gtquery($query) foreach ($entries as $entry) echo Livre trouveacute $entry-gtnodeValue n
gt
LightPath 2014copy - httpwwwjmrenouardfr 20
LightPath 2014copy - httpwwwjmrenouardfr 21
Plus simple que DOM
Utilise la librairie libXML
Plus rapide plus simple
LibXML librairie XML de reacutefeacuterence
LightPath 2014copy - httpwwwjmrenouardfr 22
simplexml_import_dom Conversion drsquoun DOMDocument en
SimpleXMLElement
simple_load_file Conversion un fichier XML en objet
simplexml_load_string Conversion drsquoune chaicircne XML en objet
LightPath 2014copy - httpwwwjmrenouardfr 23
Lrsquoobjet SimpleXMLElement Meacutethode asXML($nomDeFichier)
Extraction drsquoune chaicircne de caractegravere XML
file_put_contents pour eacutecrire dans un fichier
LightPath 2014copy - httpwwwjmrenouardfr 24
Expression XPath possible
Faccedilon la plus rapide
ltphp $xml= simple_load_file(lsquobookxmlrsquo) $result = $xml-gtxpath(booktitle)
while(list( $node) = each($result))
echo $node-gtasXML() gt
LightPath 2014copy - httpwwwjmrenouardfr 25
nom recherche de la balise nom
fils recherche fils directs
nœud recherche fils directs et indirects
wildcard ()
| expression drsquoun Ou
eacuteleacutement courant
eacuteleacutement parent
attr recherche drsquoun eacuteleacutement avec attribut attr
LightPath 2014copy - httpwwwjmrenouardfr 26
id=lsquo5rsquo recherche drsquoun eacuteleacutement avec attribut id valant 5
Book[id=lsquo5rsquo] recherche drsquoun eacuteleacutement book avec un attribut id valant 5
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28
ltphp
$dom = new DOMDocument()
$dom-gtload(httpwwww3schoolscomXMLsimplexml)
$dom-gtload(lsquocsimplexml)
$dom-gtgetElementsByTagName(lsquofood)
$i++
foreach ($params as $param)
echo laquo laquo $param-gtnodeName raquo = laquo $param-gtnodeValue
gt
LightPath 2014copy - httpwwwjmrenouardfr 7
ltphp
$dom = new DOMDocument()
$dom-gtload(httpwwww3schoolscomXMLsimplexml)
$dom-gtload(lsquocsimplexml)
$params=$dom-gtgetElementsByTagName(lsquofood)
foreach ($params as $param)
echo laquo laquo $param-gtnodeName raquo = laquo $param-gtnodeValue
gt
LightPath 2014copy - httpwwwjmrenouardfr 8
Meacutethode save() Fichier agrave sauvegarder
Meacutethodes saveHTML() et saveXML() Sauvegarde dans une chaicircne de caractegravere
LightPath 2014copy - httpwwwjmrenouardfr 9
Validation du format XML Si DTD =gt Validation par DTD
Meacutethode de DOMDocument
Validate()
ltphp $dom = new DOMDocument $dom-gtLoad(bookxml) if ($dom-gtvalidate()) echo Ce document est valide n
gt
LightPath 2014copy - httpwwwjmrenouardfr 10
Deacutefinition en XML dun contrat que doit
respecter un document XML
Validation formelle de la structure
Validation du format des donneacutees
LightPath 2014copy - httpwwwjmrenouardfr 11
Meacutethode de DOMDocument schemaValidate()
ltphp $dom = new DOMDocument $dom-gtLoad(bookxml) if ($dom-gtschemaValidate(lsquoschemaxmlrsquo)) echo Ce document est valide XMLSchema n
gt
LightPath 2014copy - httpwwwjmrenouardfr 12
ll est possible de traduire une document XML en tableau PHP
Facilite la lecture et la manipulation
Exemple WC1MyDOMDocumentphp
LightPath 2014copy - httpwwwjmrenouardfr 13
DOMDocument 2 meacutethodes
getElementById() Trouve un eacuteleacutement par identifiant Renvoie un DOMElement
getElementsByTagName() Trouve une liste de nœud Renvoie une DOMNodeList
LightPath 2014copy - httpwwwjmrenouardfr 14
Il srsquoagit drsquoun tag
DOMElement $domElement=new DOMElement(laquo food raquo)
$domElement-gttagName
$domElement-gtgetAttribute()
$domElement-gtgetElementsByTagName(lsquorsquo)
LightPath 2014copy - httpwwwjmrenouardfr 15
$nodeList-gtlength
DOMNode $node=$nodeList-gtitem($i)
$node-gtnodeName nom du nœud
$node-gtnodeValue valeur du nœud
$node-gttextContent contenu du nœud
LightPath 2014copy - httpwwwjmrenouardfr 16
Moyen deffectuer de la recherche dans des
documents XML
Syntaxe riche
Efficace et standardiseacute
LightPath 2014copy - httpwwwjmrenouardfr 17
Classe DOMXPath
2 meacutethodes evaluate() eacutevaluation et comptage
query() recherche des eacuteleacutements
LightPath 2014copy - httpwwwjmrenouardfr 18
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $tbody = $doc-gtgetElementsByTagName(tbody)-gtitem(0) notre requecircte est relative au noeud tbody $query = count(rowentry[ = en]) $entries = $xpath-gtevaluate($query $tbody) echo Il y a $entries livres anglaisn gt
LightPath 2014copy - httpwwwjmrenouardfr 19
DOMXPtah-gtquery renvoie un objet DOMNodeList
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $query = booktitle $entries = $xpath-gtquery($query) foreach ($entries as $entry) echo Livre trouveacute $entry-gtnodeValue n
gt
LightPath 2014copy - httpwwwjmrenouardfr 20
LightPath 2014copy - httpwwwjmrenouardfr 21
Plus simple que DOM
Utilise la librairie libXML
Plus rapide plus simple
LibXML librairie XML de reacutefeacuterence
LightPath 2014copy - httpwwwjmrenouardfr 22
simplexml_import_dom Conversion drsquoun DOMDocument en
SimpleXMLElement
simple_load_file Conversion un fichier XML en objet
simplexml_load_string Conversion drsquoune chaicircne XML en objet
LightPath 2014copy - httpwwwjmrenouardfr 23
Lrsquoobjet SimpleXMLElement Meacutethode asXML($nomDeFichier)
Extraction drsquoune chaicircne de caractegravere XML
file_put_contents pour eacutecrire dans un fichier
LightPath 2014copy - httpwwwjmrenouardfr 24
Expression XPath possible
Faccedilon la plus rapide
ltphp $xml= simple_load_file(lsquobookxmlrsquo) $result = $xml-gtxpath(booktitle)
while(list( $node) = each($result))
echo $node-gtasXML() gt
LightPath 2014copy - httpwwwjmrenouardfr 25
nom recherche de la balise nom
fils recherche fils directs
nœud recherche fils directs et indirects
wildcard ()
| expression drsquoun Ou
eacuteleacutement courant
eacuteleacutement parent
attr recherche drsquoun eacuteleacutement avec attribut attr
LightPath 2014copy - httpwwwjmrenouardfr 26
id=lsquo5rsquo recherche drsquoun eacuteleacutement avec attribut id valant 5
Book[id=lsquo5rsquo] recherche drsquoun eacuteleacutement book avec un attribut id valant 5
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28
ltphp
$dom = new DOMDocument()
$dom-gtload(httpwwww3schoolscomXMLsimplexml)
$dom-gtload(lsquocsimplexml)
$params=$dom-gtgetElementsByTagName(lsquofood)
foreach ($params as $param)
echo laquo laquo $param-gtnodeName raquo = laquo $param-gtnodeValue
gt
LightPath 2014copy - httpwwwjmrenouardfr 8
Meacutethode save() Fichier agrave sauvegarder
Meacutethodes saveHTML() et saveXML() Sauvegarde dans une chaicircne de caractegravere
LightPath 2014copy - httpwwwjmrenouardfr 9
Validation du format XML Si DTD =gt Validation par DTD
Meacutethode de DOMDocument
Validate()
ltphp $dom = new DOMDocument $dom-gtLoad(bookxml) if ($dom-gtvalidate()) echo Ce document est valide n
gt
LightPath 2014copy - httpwwwjmrenouardfr 10
Deacutefinition en XML dun contrat que doit
respecter un document XML
Validation formelle de la structure
Validation du format des donneacutees
LightPath 2014copy - httpwwwjmrenouardfr 11
Meacutethode de DOMDocument schemaValidate()
ltphp $dom = new DOMDocument $dom-gtLoad(bookxml) if ($dom-gtschemaValidate(lsquoschemaxmlrsquo)) echo Ce document est valide XMLSchema n
gt
LightPath 2014copy - httpwwwjmrenouardfr 12
ll est possible de traduire une document XML en tableau PHP
Facilite la lecture et la manipulation
Exemple WC1MyDOMDocumentphp
LightPath 2014copy - httpwwwjmrenouardfr 13
DOMDocument 2 meacutethodes
getElementById() Trouve un eacuteleacutement par identifiant Renvoie un DOMElement
getElementsByTagName() Trouve une liste de nœud Renvoie une DOMNodeList
LightPath 2014copy - httpwwwjmrenouardfr 14
Il srsquoagit drsquoun tag
DOMElement $domElement=new DOMElement(laquo food raquo)
$domElement-gttagName
$domElement-gtgetAttribute()
$domElement-gtgetElementsByTagName(lsquorsquo)
LightPath 2014copy - httpwwwjmrenouardfr 15
$nodeList-gtlength
DOMNode $node=$nodeList-gtitem($i)
$node-gtnodeName nom du nœud
$node-gtnodeValue valeur du nœud
$node-gttextContent contenu du nœud
LightPath 2014copy - httpwwwjmrenouardfr 16
Moyen deffectuer de la recherche dans des
documents XML
Syntaxe riche
Efficace et standardiseacute
LightPath 2014copy - httpwwwjmrenouardfr 17
Classe DOMXPath
2 meacutethodes evaluate() eacutevaluation et comptage
query() recherche des eacuteleacutements
LightPath 2014copy - httpwwwjmrenouardfr 18
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $tbody = $doc-gtgetElementsByTagName(tbody)-gtitem(0) notre requecircte est relative au noeud tbody $query = count(rowentry[ = en]) $entries = $xpath-gtevaluate($query $tbody) echo Il y a $entries livres anglaisn gt
LightPath 2014copy - httpwwwjmrenouardfr 19
DOMXPtah-gtquery renvoie un objet DOMNodeList
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $query = booktitle $entries = $xpath-gtquery($query) foreach ($entries as $entry) echo Livre trouveacute $entry-gtnodeValue n
gt
LightPath 2014copy - httpwwwjmrenouardfr 20
LightPath 2014copy - httpwwwjmrenouardfr 21
Plus simple que DOM
Utilise la librairie libXML
Plus rapide plus simple
LibXML librairie XML de reacutefeacuterence
LightPath 2014copy - httpwwwjmrenouardfr 22
simplexml_import_dom Conversion drsquoun DOMDocument en
SimpleXMLElement
simple_load_file Conversion un fichier XML en objet
simplexml_load_string Conversion drsquoune chaicircne XML en objet
LightPath 2014copy - httpwwwjmrenouardfr 23
Lrsquoobjet SimpleXMLElement Meacutethode asXML($nomDeFichier)
Extraction drsquoune chaicircne de caractegravere XML
file_put_contents pour eacutecrire dans un fichier
LightPath 2014copy - httpwwwjmrenouardfr 24
Expression XPath possible
Faccedilon la plus rapide
ltphp $xml= simple_load_file(lsquobookxmlrsquo) $result = $xml-gtxpath(booktitle)
while(list( $node) = each($result))
echo $node-gtasXML() gt
LightPath 2014copy - httpwwwjmrenouardfr 25
nom recherche de la balise nom
fils recherche fils directs
nœud recherche fils directs et indirects
wildcard ()
| expression drsquoun Ou
eacuteleacutement courant
eacuteleacutement parent
attr recherche drsquoun eacuteleacutement avec attribut attr
LightPath 2014copy - httpwwwjmrenouardfr 26
id=lsquo5rsquo recherche drsquoun eacuteleacutement avec attribut id valant 5
Book[id=lsquo5rsquo] recherche drsquoun eacuteleacutement book avec un attribut id valant 5
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28
Meacutethode save() Fichier agrave sauvegarder
Meacutethodes saveHTML() et saveXML() Sauvegarde dans une chaicircne de caractegravere
LightPath 2014copy - httpwwwjmrenouardfr 9
Validation du format XML Si DTD =gt Validation par DTD
Meacutethode de DOMDocument
Validate()
ltphp $dom = new DOMDocument $dom-gtLoad(bookxml) if ($dom-gtvalidate()) echo Ce document est valide n
gt
LightPath 2014copy - httpwwwjmrenouardfr 10
Deacutefinition en XML dun contrat que doit
respecter un document XML
Validation formelle de la structure
Validation du format des donneacutees
LightPath 2014copy - httpwwwjmrenouardfr 11
Meacutethode de DOMDocument schemaValidate()
ltphp $dom = new DOMDocument $dom-gtLoad(bookxml) if ($dom-gtschemaValidate(lsquoschemaxmlrsquo)) echo Ce document est valide XMLSchema n
gt
LightPath 2014copy - httpwwwjmrenouardfr 12
ll est possible de traduire une document XML en tableau PHP
Facilite la lecture et la manipulation
Exemple WC1MyDOMDocumentphp
LightPath 2014copy - httpwwwjmrenouardfr 13
DOMDocument 2 meacutethodes
getElementById() Trouve un eacuteleacutement par identifiant Renvoie un DOMElement
getElementsByTagName() Trouve une liste de nœud Renvoie une DOMNodeList
LightPath 2014copy - httpwwwjmrenouardfr 14
Il srsquoagit drsquoun tag
DOMElement $domElement=new DOMElement(laquo food raquo)
$domElement-gttagName
$domElement-gtgetAttribute()
$domElement-gtgetElementsByTagName(lsquorsquo)
LightPath 2014copy - httpwwwjmrenouardfr 15
$nodeList-gtlength
DOMNode $node=$nodeList-gtitem($i)
$node-gtnodeName nom du nœud
$node-gtnodeValue valeur du nœud
$node-gttextContent contenu du nœud
LightPath 2014copy - httpwwwjmrenouardfr 16
Moyen deffectuer de la recherche dans des
documents XML
Syntaxe riche
Efficace et standardiseacute
LightPath 2014copy - httpwwwjmrenouardfr 17
Classe DOMXPath
2 meacutethodes evaluate() eacutevaluation et comptage
query() recherche des eacuteleacutements
LightPath 2014copy - httpwwwjmrenouardfr 18
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $tbody = $doc-gtgetElementsByTagName(tbody)-gtitem(0) notre requecircte est relative au noeud tbody $query = count(rowentry[ = en]) $entries = $xpath-gtevaluate($query $tbody) echo Il y a $entries livres anglaisn gt
LightPath 2014copy - httpwwwjmrenouardfr 19
DOMXPtah-gtquery renvoie un objet DOMNodeList
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $query = booktitle $entries = $xpath-gtquery($query) foreach ($entries as $entry) echo Livre trouveacute $entry-gtnodeValue n
gt
LightPath 2014copy - httpwwwjmrenouardfr 20
LightPath 2014copy - httpwwwjmrenouardfr 21
Plus simple que DOM
Utilise la librairie libXML
Plus rapide plus simple
LibXML librairie XML de reacutefeacuterence
LightPath 2014copy - httpwwwjmrenouardfr 22
simplexml_import_dom Conversion drsquoun DOMDocument en
SimpleXMLElement
simple_load_file Conversion un fichier XML en objet
simplexml_load_string Conversion drsquoune chaicircne XML en objet
LightPath 2014copy - httpwwwjmrenouardfr 23
Lrsquoobjet SimpleXMLElement Meacutethode asXML($nomDeFichier)
Extraction drsquoune chaicircne de caractegravere XML
file_put_contents pour eacutecrire dans un fichier
LightPath 2014copy - httpwwwjmrenouardfr 24
Expression XPath possible
Faccedilon la plus rapide
ltphp $xml= simple_load_file(lsquobookxmlrsquo) $result = $xml-gtxpath(booktitle)
while(list( $node) = each($result))
echo $node-gtasXML() gt
LightPath 2014copy - httpwwwjmrenouardfr 25
nom recherche de la balise nom
fils recherche fils directs
nœud recherche fils directs et indirects
wildcard ()
| expression drsquoun Ou
eacuteleacutement courant
eacuteleacutement parent
attr recherche drsquoun eacuteleacutement avec attribut attr
LightPath 2014copy - httpwwwjmrenouardfr 26
id=lsquo5rsquo recherche drsquoun eacuteleacutement avec attribut id valant 5
Book[id=lsquo5rsquo] recherche drsquoun eacuteleacutement book avec un attribut id valant 5
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28
Validation du format XML Si DTD =gt Validation par DTD
Meacutethode de DOMDocument
Validate()
ltphp $dom = new DOMDocument $dom-gtLoad(bookxml) if ($dom-gtvalidate()) echo Ce document est valide n
gt
LightPath 2014copy - httpwwwjmrenouardfr 10
Deacutefinition en XML dun contrat que doit
respecter un document XML
Validation formelle de la structure
Validation du format des donneacutees
LightPath 2014copy - httpwwwjmrenouardfr 11
Meacutethode de DOMDocument schemaValidate()
ltphp $dom = new DOMDocument $dom-gtLoad(bookxml) if ($dom-gtschemaValidate(lsquoschemaxmlrsquo)) echo Ce document est valide XMLSchema n
gt
LightPath 2014copy - httpwwwjmrenouardfr 12
ll est possible de traduire une document XML en tableau PHP
Facilite la lecture et la manipulation
Exemple WC1MyDOMDocumentphp
LightPath 2014copy - httpwwwjmrenouardfr 13
DOMDocument 2 meacutethodes
getElementById() Trouve un eacuteleacutement par identifiant Renvoie un DOMElement
getElementsByTagName() Trouve une liste de nœud Renvoie une DOMNodeList
LightPath 2014copy - httpwwwjmrenouardfr 14
Il srsquoagit drsquoun tag
DOMElement $domElement=new DOMElement(laquo food raquo)
$domElement-gttagName
$domElement-gtgetAttribute()
$domElement-gtgetElementsByTagName(lsquorsquo)
LightPath 2014copy - httpwwwjmrenouardfr 15
$nodeList-gtlength
DOMNode $node=$nodeList-gtitem($i)
$node-gtnodeName nom du nœud
$node-gtnodeValue valeur du nœud
$node-gttextContent contenu du nœud
LightPath 2014copy - httpwwwjmrenouardfr 16
Moyen deffectuer de la recherche dans des
documents XML
Syntaxe riche
Efficace et standardiseacute
LightPath 2014copy - httpwwwjmrenouardfr 17
Classe DOMXPath
2 meacutethodes evaluate() eacutevaluation et comptage
query() recherche des eacuteleacutements
LightPath 2014copy - httpwwwjmrenouardfr 18
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $tbody = $doc-gtgetElementsByTagName(tbody)-gtitem(0) notre requecircte est relative au noeud tbody $query = count(rowentry[ = en]) $entries = $xpath-gtevaluate($query $tbody) echo Il y a $entries livres anglaisn gt
LightPath 2014copy - httpwwwjmrenouardfr 19
DOMXPtah-gtquery renvoie un objet DOMNodeList
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $query = booktitle $entries = $xpath-gtquery($query) foreach ($entries as $entry) echo Livre trouveacute $entry-gtnodeValue n
gt
LightPath 2014copy - httpwwwjmrenouardfr 20
LightPath 2014copy - httpwwwjmrenouardfr 21
Plus simple que DOM
Utilise la librairie libXML
Plus rapide plus simple
LibXML librairie XML de reacutefeacuterence
LightPath 2014copy - httpwwwjmrenouardfr 22
simplexml_import_dom Conversion drsquoun DOMDocument en
SimpleXMLElement
simple_load_file Conversion un fichier XML en objet
simplexml_load_string Conversion drsquoune chaicircne XML en objet
LightPath 2014copy - httpwwwjmrenouardfr 23
Lrsquoobjet SimpleXMLElement Meacutethode asXML($nomDeFichier)
Extraction drsquoune chaicircne de caractegravere XML
file_put_contents pour eacutecrire dans un fichier
LightPath 2014copy - httpwwwjmrenouardfr 24
Expression XPath possible
Faccedilon la plus rapide
ltphp $xml= simple_load_file(lsquobookxmlrsquo) $result = $xml-gtxpath(booktitle)
while(list( $node) = each($result))
echo $node-gtasXML() gt
LightPath 2014copy - httpwwwjmrenouardfr 25
nom recherche de la balise nom
fils recherche fils directs
nœud recherche fils directs et indirects
wildcard ()
| expression drsquoun Ou
eacuteleacutement courant
eacuteleacutement parent
attr recherche drsquoun eacuteleacutement avec attribut attr
LightPath 2014copy - httpwwwjmrenouardfr 26
id=lsquo5rsquo recherche drsquoun eacuteleacutement avec attribut id valant 5
Book[id=lsquo5rsquo] recherche drsquoun eacuteleacutement book avec un attribut id valant 5
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28
Deacutefinition en XML dun contrat que doit
respecter un document XML
Validation formelle de la structure
Validation du format des donneacutees
LightPath 2014copy - httpwwwjmrenouardfr 11
Meacutethode de DOMDocument schemaValidate()
ltphp $dom = new DOMDocument $dom-gtLoad(bookxml) if ($dom-gtschemaValidate(lsquoschemaxmlrsquo)) echo Ce document est valide XMLSchema n
gt
LightPath 2014copy - httpwwwjmrenouardfr 12
ll est possible de traduire une document XML en tableau PHP
Facilite la lecture et la manipulation
Exemple WC1MyDOMDocumentphp
LightPath 2014copy - httpwwwjmrenouardfr 13
DOMDocument 2 meacutethodes
getElementById() Trouve un eacuteleacutement par identifiant Renvoie un DOMElement
getElementsByTagName() Trouve une liste de nœud Renvoie une DOMNodeList
LightPath 2014copy - httpwwwjmrenouardfr 14
Il srsquoagit drsquoun tag
DOMElement $domElement=new DOMElement(laquo food raquo)
$domElement-gttagName
$domElement-gtgetAttribute()
$domElement-gtgetElementsByTagName(lsquorsquo)
LightPath 2014copy - httpwwwjmrenouardfr 15
$nodeList-gtlength
DOMNode $node=$nodeList-gtitem($i)
$node-gtnodeName nom du nœud
$node-gtnodeValue valeur du nœud
$node-gttextContent contenu du nœud
LightPath 2014copy - httpwwwjmrenouardfr 16
Moyen deffectuer de la recherche dans des
documents XML
Syntaxe riche
Efficace et standardiseacute
LightPath 2014copy - httpwwwjmrenouardfr 17
Classe DOMXPath
2 meacutethodes evaluate() eacutevaluation et comptage
query() recherche des eacuteleacutements
LightPath 2014copy - httpwwwjmrenouardfr 18
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $tbody = $doc-gtgetElementsByTagName(tbody)-gtitem(0) notre requecircte est relative au noeud tbody $query = count(rowentry[ = en]) $entries = $xpath-gtevaluate($query $tbody) echo Il y a $entries livres anglaisn gt
LightPath 2014copy - httpwwwjmrenouardfr 19
DOMXPtah-gtquery renvoie un objet DOMNodeList
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $query = booktitle $entries = $xpath-gtquery($query) foreach ($entries as $entry) echo Livre trouveacute $entry-gtnodeValue n
gt
LightPath 2014copy - httpwwwjmrenouardfr 20
LightPath 2014copy - httpwwwjmrenouardfr 21
Plus simple que DOM
Utilise la librairie libXML
Plus rapide plus simple
LibXML librairie XML de reacutefeacuterence
LightPath 2014copy - httpwwwjmrenouardfr 22
simplexml_import_dom Conversion drsquoun DOMDocument en
SimpleXMLElement
simple_load_file Conversion un fichier XML en objet
simplexml_load_string Conversion drsquoune chaicircne XML en objet
LightPath 2014copy - httpwwwjmrenouardfr 23
Lrsquoobjet SimpleXMLElement Meacutethode asXML($nomDeFichier)
Extraction drsquoune chaicircne de caractegravere XML
file_put_contents pour eacutecrire dans un fichier
LightPath 2014copy - httpwwwjmrenouardfr 24
Expression XPath possible
Faccedilon la plus rapide
ltphp $xml= simple_load_file(lsquobookxmlrsquo) $result = $xml-gtxpath(booktitle)
while(list( $node) = each($result))
echo $node-gtasXML() gt
LightPath 2014copy - httpwwwjmrenouardfr 25
nom recherche de la balise nom
fils recherche fils directs
nœud recherche fils directs et indirects
wildcard ()
| expression drsquoun Ou
eacuteleacutement courant
eacuteleacutement parent
attr recherche drsquoun eacuteleacutement avec attribut attr
LightPath 2014copy - httpwwwjmrenouardfr 26
id=lsquo5rsquo recherche drsquoun eacuteleacutement avec attribut id valant 5
Book[id=lsquo5rsquo] recherche drsquoun eacuteleacutement book avec un attribut id valant 5
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28
Meacutethode de DOMDocument schemaValidate()
ltphp $dom = new DOMDocument $dom-gtLoad(bookxml) if ($dom-gtschemaValidate(lsquoschemaxmlrsquo)) echo Ce document est valide XMLSchema n
gt
LightPath 2014copy - httpwwwjmrenouardfr 12
ll est possible de traduire une document XML en tableau PHP
Facilite la lecture et la manipulation
Exemple WC1MyDOMDocumentphp
LightPath 2014copy - httpwwwjmrenouardfr 13
DOMDocument 2 meacutethodes
getElementById() Trouve un eacuteleacutement par identifiant Renvoie un DOMElement
getElementsByTagName() Trouve une liste de nœud Renvoie une DOMNodeList
LightPath 2014copy - httpwwwjmrenouardfr 14
Il srsquoagit drsquoun tag
DOMElement $domElement=new DOMElement(laquo food raquo)
$domElement-gttagName
$domElement-gtgetAttribute()
$domElement-gtgetElementsByTagName(lsquorsquo)
LightPath 2014copy - httpwwwjmrenouardfr 15
$nodeList-gtlength
DOMNode $node=$nodeList-gtitem($i)
$node-gtnodeName nom du nœud
$node-gtnodeValue valeur du nœud
$node-gttextContent contenu du nœud
LightPath 2014copy - httpwwwjmrenouardfr 16
Moyen deffectuer de la recherche dans des
documents XML
Syntaxe riche
Efficace et standardiseacute
LightPath 2014copy - httpwwwjmrenouardfr 17
Classe DOMXPath
2 meacutethodes evaluate() eacutevaluation et comptage
query() recherche des eacuteleacutements
LightPath 2014copy - httpwwwjmrenouardfr 18
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $tbody = $doc-gtgetElementsByTagName(tbody)-gtitem(0) notre requecircte est relative au noeud tbody $query = count(rowentry[ = en]) $entries = $xpath-gtevaluate($query $tbody) echo Il y a $entries livres anglaisn gt
LightPath 2014copy - httpwwwjmrenouardfr 19
DOMXPtah-gtquery renvoie un objet DOMNodeList
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $query = booktitle $entries = $xpath-gtquery($query) foreach ($entries as $entry) echo Livre trouveacute $entry-gtnodeValue n
gt
LightPath 2014copy - httpwwwjmrenouardfr 20
LightPath 2014copy - httpwwwjmrenouardfr 21
Plus simple que DOM
Utilise la librairie libXML
Plus rapide plus simple
LibXML librairie XML de reacutefeacuterence
LightPath 2014copy - httpwwwjmrenouardfr 22
simplexml_import_dom Conversion drsquoun DOMDocument en
SimpleXMLElement
simple_load_file Conversion un fichier XML en objet
simplexml_load_string Conversion drsquoune chaicircne XML en objet
LightPath 2014copy - httpwwwjmrenouardfr 23
Lrsquoobjet SimpleXMLElement Meacutethode asXML($nomDeFichier)
Extraction drsquoune chaicircne de caractegravere XML
file_put_contents pour eacutecrire dans un fichier
LightPath 2014copy - httpwwwjmrenouardfr 24
Expression XPath possible
Faccedilon la plus rapide
ltphp $xml= simple_load_file(lsquobookxmlrsquo) $result = $xml-gtxpath(booktitle)
while(list( $node) = each($result))
echo $node-gtasXML() gt
LightPath 2014copy - httpwwwjmrenouardfr 25
nom recherche de la balise nom
fils recherche fils directs
nœud recherche fils directs et indirects
wildcard ()
| expression drsquoun Ou
eacuteleacutement courant
eacuteleacutement parent
attr recherche drsquoun eacuteleacutement avec attribut attr
LightPath 2014copy - httpwwwjmrenouardfr 26
id=lsquo5rsquo recherche drsquoun eacuteleacutement avec attribut id valant 5
Book[id=lsquo5rsquo] recherche drsquoun eacuteleacutement book avec un attribut id valant 5
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28
ll est possible de traduire une document XML en tableau PHP
Facilite la lecture et la manipulation
Exemple WC1MyDOMDocumentphp
LightPath 2014copy - httpwwwjmrenouardfr 13
DOMDocument 2 meacutethodes
getElementById() Trouve un eacuteleacutement par identifiant Renvoie un DOMElement
getElementsByTagName() Trouve une liste de nœud Renvoie une DOMNodeList
LightPath 2014copy - httpwwwjmrenouardfr 14
Il srsquoagit drsquoun tag
DOMElement $domElement=new DOMElement(laquo food raquo)
$domElement-gttagName
$domElement-gtgetAttribute()
$domElement-gtgetElementsByTagName(lsquorsquo)
LightPath 2014copy - httpwwwjmrenouardfr 15
$nodeList-gtlength
DOMNode $node=$nodeList-gtitem($i)
$node-gtnodeName nom du nœud
$node-gtnodeValue valeur du nœud
$node-gttextContent contenu du nœud
LightPath 2014copy - httpwwwjmrenouardfr 16
Moyen deffectuer de la recherche dans des
documents XML
Syntaxe riche
Efficace et standardiseacute
LightPath 2014copy - httpwwwjmrenouardfr 17
Classe DOMXPath
2 meacutethodes evaluate() eacutevaluation et comptage
query() recherche des eacuteleacutements
LightPath 2014copy - httpwwwjmrenouardfr 18
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $tbody = $doc-gtgetElementsByTagName(tbody)-gtitem(0) notre requecircte est relative au noeud tbody $query = count(rowentry[ = en]) $entries = $xpath-gtevaluate($query $tbody) echo Il y a $entries livres anglaisn gt
LightPath 2014copy - httpwwwjmrenouardfr 19
DOMXPtah-gtquery renvoie un objet DOMNodeList
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $query = booktitle $entries = $xpath-gtquery($query) foreach ($entries as $entry) echo Livre trouveacute $entry-gtnodeValue n
gt
LightPath 2014copy - httpwwwjmrenouardfr 20
LightPath 2014copy - httpwwwjmrenouardfr 21
Plus simple que DOM
Utilise la librairie libXML
Plus rapide plus simple
LibXML librairie XML de reacutefeacuterence
LightPath 2014copy - httpwwwjmrenouardfr 22
simplexml_import_dom Conversion drsquoun DOMDocument en
SimpleXMLElement
simple_load_file Conversion un fichier XML en objet
simplexml_load_string Conversion drsquoune chaicircne XML en objet
LightPath 2014copy - httpwwwjmrenouardfr 23
Lrsquoobjet SimpleXMLElement Meacutethode asXML($nomDeFichier)
Extraction drsquoune chaicircne de caractegravere XML
file_put_contents pour eacutecrire dans un fichier
LightPath 2014copy - httpwwwjmrenouardfr 24
Expression XPath possible
Faccedilon la plus rapide
ltphp $xml= simple_load_file(lsquobookxmlrsquo) $result = $xml-gtxpath(booktitle)
while(list( $node) = each($result))
echo $node-gtasXML() gt
LightPath 2014copy - httpwwwjmrenouardfr 25
nom recherche de la balise nom
fils recherche fils directs
nœud recherche fils directs et indirects
wildcard ()
| expression drsquoun Ou
eacuteleacutement courant
eacuteleacutement parent
attr recherche drsquoun eacuteleacutement avec attribut attr
LightPath 2014copy - httpwwwjmrenouardfr 26
id=lsquo5rsquo recherche drsquoun eacuteleacutement avec attribut id valant 5
Book[id=lsquo5rsquo] recherche drsquoun eacuteleacutement book avec un attribut id valant 5
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28
DOMDocument 2 meacutethodes
getElementById() Trouve un eacuteleacutement par identifiant Renvoie un DOMElement
getElementsByTagName() Trouve une liste de nœud Renvoie une DOMNodeList
LightPath 2014copy - httpwwwjmrenouardfr 14
Il srsquoagit drsquoun tag
DOMElement $domElement=new DOMElement(laquo food raquo)
$domElement-gttagName
$domElement-gtgetAttribute()
$domElement-gtgetElementsByTagName(lsquorsquo)
LightPath 2014copy - httpwwwjmrenouardfr 15
$nodeList-gtlength
DOMNode $node=$nodeList-gtitem($i)
$node-gtnodeName nom du nœud
$node-gtnodeValue valeur du nœud
$node-gttextContent contenu du nœud
LightPath 2014copy - httpwwwjmrenouardfr 16
Moyen deffectuer de la recherche dans des
documents XML
Syntaxe riche
Efficace et standardiseacute
LightPath 2014copy - httpwwwjmrenouardfr 17
Classe DOMXPath
2 meacutethodes evaluate() eacutevaluation et comptage
query() recherche des eacuteleacutements
LightPath 2014copy - httpwwwjmrenouardfr 18
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $tbody = $doc-gtgetElementsByTagName(tbody)-gtitem(0) notre requecircte est relative au noeud tbody $query = count(rowentry[ = en]) $entries = $xpath-gtevaluate($query $tbody) echo Il y a $entries livres anglaisn gt
LightPath 2014copy - httpwwwjmrenouardfr 19
DOMXPtah-gtquery renvoie un objet DOMNodeList
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $query = booktitle $entries = $xpath-gtquery($query) foreach ($entries as $entry) echo Livre trouveacute $entry-gtnodeValue n
gt
LightPath 2014copy - httpwwwjmrenouardfr 20
LightPath 2014copy - httpwwwjmrenouardfr 21
Plus simple que DOM
Utilise la librairie libXML
Plus rapide plus simple
LibXML librairie XML de reacutefeacuterence
LightPath 2014copy - httpwwwjmrenouardfr 22
simplexml_import_dom Conversion drsquoun DOMDocument en
SimpleXMLElement
simple_load_file Conversion un fichier XML en objet
simplexml_load_string Conversion drsquoune chaicircne XML en objet
LightPath 2014copy - httpwwwjmrenouardfr 23
Lrsquoobjet SimpleXMLElement Meacutethode asXML($nomDeFichier)
Extraction drsquoune chaicircne de caractegravere XML
file_put_contents pour eacutecrire dans un fichier
LightPath 2014copy - httpwwwjmrenouardfr 24
Expression XPath possible
Faccedilon la plus rapide
ltphp $xml= simple_load_file(lsquobookxmlrsquo) $result = $xml-gtxpath(booktitle)
while(list( $node) = each($result))
echo $node-gtasXML() gt
LightPath 2014copy - httpwwwjmrenouardfr 25
nom recherche de la balise nom
fils recherche fils directs
nœud recherche fils directs et indirects
wildcard ()
| expression drsquoun Ou
eacuteleacutement courant
eacuteleacutement parent
attr recherche drsquoun eacuteleacutement avec attribut attr
LightPath 2014copy - httpwwwjmrenouardfr 26
id=lsquo5rsquo recherche drsquoun eacuteleacutement avec attribut id valant 5
Book[id=lsquo5rsquo] recherche drsquoun eacuteleacutement book avec un attribut id valant 5
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28
Il srsquoagit drsquoun tag
DOMElement $domElement=new DOMElement(laquo food raquo)
$domElement-gttagName
$domElement-gtgetAttribute()
$domElement-gtgetElementsByTagName(lsquorsquo)
LightPath 2014copy - httpwwwjmrenouardfr 15
$nodeList-gtlength
DOMNode $node=$nodeList-gtitem($i)
$node-gtnodeName nom du nœud
$node-gtnodeValue valeur du nœud
$node-gttextContent contenu du nœud
LightPath 2014copy - httpwwwjmrenouardfr 16
Moyen deffectuer de la recherche dans des
documents XML
Syntaxe riche
Efficace et standardiseacute
LightPath 2014copy - httpwwwjmrenouardfr 17
Classe DOMXPath
2 meacutethodes evaluate() eacutevaluation et comptage
query() recherche des eacuteleacutements
LightPath 2014copy - httpwwwjmrenouardfr 18
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $tbody = $doc-gtgetElementsByTagName(tbody)-gtitem(0) notre requecircte est relative au noeud tbody $query = count(rowentry[ = en]) $entries = $xpath-gtevaluate($query $tbody) echo Il y a $entries livres anglaisn gt
LightPath 2014copy - httpwwwjmrenouardfr 19
DOMXPtah-gtquery renvoie un objet DOMNodeList
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $query = booktitle $entries = $xpath-gtquery($query) foreach ($entries as $entry) echo Livre trouveacute $entry-gtnodeValue n
gt
LightPath 2014copy - httpwwwjmrenouardfr 20
LightPath 2014copy - httpwwwjmrenouardfr 21
Plus simple que DOM
Utilise la librairie libXML
Plus rapide plus simple
LibXML librairie XML de reacutefeacuterence
LightPath 2014copy - httpwwwjmrenouardfr 22
simplexml_import_dom Conversion drsquoun DOMDocument en
SimpleXMLElement
simple_load_file Conversion un fichier XML en objet
simplexml_load_string Conversion drsquoune chaicircne XML en objet
LightPath 2014copy - httpwwwjmrenouardfr 23
Lrsquoobjet SimpleXMLElement Meacutethode asXML($nomDeFichier)
Extraction drsquoune chaicircne de caractegravere XML
file_put_contents pour eacutecrire dans un fichier
LightPath 2014copy - httpwwwjmrenouardfr 24
Expression XPath possible
Faccedilon la plus rapide
ltphp $xml= simple_load_file(lsquobookxmlrsquo) $result = $xml-gtxpath(booktitle)
while(list( $node) = each($result))
echo $node-gtasXML() gt
LightPath 2014copy - httpwwwjmrenouardfr 25
nom recherche de la balise nom
fils recherche fils directs
nœud recherche fils directs et indirects
wildcard ()
| expression drsquoun Ou
eacuteleacutement courant
eacuteleacutement parent
attr recherche drsquoun eacuteleacutement avec attribut attr
LightPath 2014copy - httpwwwjmrenouardfr 26
id=lsquo5rsquo recherche drsquoun eacuteleacutement avec attribut id valant 5
Book[id=lsquo5rsquo] recherche drsquoun eacuteleacutement book avec un attribut id valant 5
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28
$nodeList-gtlength
DOMNode $node=$nodeList-gtitem($i)
$node-gtnodeName nom du nœud
$node-gtnodeValue valeur du nœud
$node-gttextContent contenu du nœud
LightPath 2014copy - httpwwwjmrenouardfr 16
Moyen deffectuer de la recherche dans des
documents XML
Syntaxe riche
Efficace et standardiseacute
LightPath 2014copy - httpwwwjmrenouardfr 17
Classe DOMXPath
2 meacutethodes evaluate() eacutevaluation et comptage
query() recherche des eacuteleacutements
LightPath 2014copy - httpwwwjmrenouardfr 18
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $tbody = $doc-gtgetElementsByTagName(tbody)-gtitem(0) notre requecircte est relative au noeud tbody $query = count(rowentry[ = en]) $entries = $xpath-gtevaluate($query $tbody) echo Il y a $entries livres anglaisn gt
LightPath 2014copy - httpwwwjmrenouardfr 19
DOMXPtah-gtquery renvoie un objet DOMNodeList
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $query = booktitle $entries = $xpath-gtquery($query) foreach ($entries as $entry) echo Livre trouveacute $entry-gtnodeValue n
gt
LightPath 2014copy - httpwwwjmrenouardfr 20
LightPath 2014copy - httpwwwjmrenouardfr 21
Plus simple que DOM
Utilise la librairie libXML
Plus rapide plus simple
LibXML librairie XML de reacutefeacuterence
LightPath 2014copy - httpwwwjmrenouardfr 22
simplexml_import_dom Conversion drsquoun DOMDocument en
SimpleXMLElement
simple_load_file Conversion un fichier XML en objet
simplexml_load_string Conversion drsquoune chaicircne XML en objet
LightPath 2014copy - httpwwwjmrenouardfr 23
Lrsquoobjet SimpleXMLElement Meacutethode asXML($nomDeFichier)
Extraction drsquoune chaicircne de caractegravere XML
file_put_contents pour eacutecrire dans un fichier
LightPath 2014copy - httpwwwjmrenouardfr 24
Expression XPath possible
Faccedilon la plus rapide
ltphp $xml= simple_load_file(lsquobookxmlrsquo) $result = $xml-gtxpath(booktitle)
while(list( $node) = each($result))
echo $node-gtasXML() gt
LightPath 2014copy - httpwwwjmrenouardfr 25
nom recherche de la balise nom
fils recherche fils directs
nœud recherche fils directs et indirects
wildcard ()
| expression drsquoun Ou
eacuteleacutement courant
eacuteleacutement parent
attr recherche drsquoun eacuteleacutement avec attribut attr
LightPath 2014copy - httpwwwjmrenouardfr 26
id=lsquo5rsquo recherche drsquoun eacuteleacutement avec attribut id valant 5
Book[id=lsquo5rsquo] recherche drsquoun eacuteleacutement book avec un attribut id valant 5
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28
Moyen deffectuer de la recherche dans des
documents XML
Syntaxe riche
Efficace et standardiseacute
LightPath 2014copy - httpwwwjmrenouardfr 17
Classe DOMXPath
2 meacutethodes evaluate() eacutevaluation et comptage
query() recherche des eacuteleacutements
LightPath 2014copy - httpwwwjmrenouardfr 18
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $tbody = $doc-gtgetElementsByTagName(tbody)-gtitem(0) notre requecircte est relative au noeud tbody $query = count(rowentry[ = en]) $entries = $xpath-gtevaluate($query $tbody) echo Il y a $entries livres anglaisn gt
LightPath 2014copy - httpwwwjmrenouardfr 19
DOMXPtah-gtquery renvoie un objet DOMNodeList
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $query = booktitle $entries = $xpath-gtquery($query) foreach ($entries as $entry) echo Livre trouveacute $entry-gtnodeValue n
gt
LightPath 2014copy - httpwwwjmrenouardfr 20
LightPath 2014copy - httpwwwjmrenouardfr 21
Plus simple que DOM
Utilise la librairie libXML
Plus rapide plus simple
LibXML librairie XML de reacutefeacuterence
LightPath 2014copy - httpwwwjmrenouardfr 22
simplexml_import_dom Conversion drsquoun DOMDocument en
SimpleXMLElement
simple_load_file Conversion un fichier XML en objet
simplexml_load_string Conversion drsquoune chaicircne XML en objet
LightPath 2014copy - httpwwwjmrenouardfr 23
Lrsquoobjet SimpleXMLElement Meacutethode asXML($nomDeFichier)
Extraction drsquoune chaicircne de caractegravere XML
file_put_contents pour eacutecrire dans un fichier
LightPath 2014copy - httpwwwjmrenouardfr 24
Expression XPath possible
Faccedilon la plus rapide
ltphp $xml= simple_load_file(lsquobookxmlrsquo) $result = $xml-gtxpath(booktitle)
while(list( $node) = each($result))
echo $node-gtasXML() gt
LightPath 2014copy - httpwwwjmrenouardfr 25
nom recherche de la balise nom
fils recherche fils directs
nœud recherche fils directs et indirects
wildcard ()
| expression drsquoun Ou
eacuteleacutement courant
eacuteleacutement parent
attr recherche drsquoun eacuteleacutement avec attribut attr
LightPath 2014copy - httpwwwjmrenouardfr 26
id=lsquo5rsquo recherche drsquoun eacuteleacutement avec attribut id valant 5
Book[id=lsquo5rsquo] recherche drsquoun eacuteleacutement book avec un attribut id valant 5
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28
Classe DOMXPath
2 meacutethodes evaluate() eacutevaluation et comptage
query() recherche des eacuteleacutements
LightPath 2014copy - httpwwwjmrenouardfr 18
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $tbody = $doc-gtgetElementsByTagName(tbody)-gtitem(0) notre requecircte est relative au noeud tbody $query = count(rowentry[ = en]) $entries = $xpath-gtevaluate($query $tbody) echo Il y a $entries livres anglaisn gt
LightPath 2014copy - httpwwwjmrenouardfr 19
DOMXPtah-gtquery renvoie un objet DOMNodeList
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $query = booktitle $entries = $xpath-gtquery($query) foreach ($entries as $entry) echo Livre trouveacute $entry-gtnodeValue n
gt
LightPath 2014copy - httpwwwjmrenouardfr 20
LightPath 2014copy - httpwwwjmrenouardfr 21
Plus simple que DOM
Utilise la librairie libXML
Plus rapide plus simple
LibXML librairie XML de reacutefeacuterence
LightPath 2014copy - httpwwwjmrenouardfr 22
simplexml_import_dom Conversion drsquoun DOMDocument en
SimpleXMLElement
simple_load_file Conversion un fichier XML en objet
simplexml_load_string Conversion drsquoune chaicircne XML en objet
LightPath 2014copy - httpwwwjmrenouardfr 23
Lrsquoobjet SimpleXMLElement Meacutethode asXML($nomDeFichier)
Extraction drsquoune chaicircne de caractegravere XML
file_put_contents pour eacutecrire dans un fichier
LightPath 2014copy - httpwwwjmrenouardfr 24
Expression XPath possible
Faccedilon la plus rapide
ltphp $xml= simple_load_file(lsquobookxmlrsquo) $result = $xml-gtxpath(booktitle)
while(list( $node) = each($result))
echo $node-gtasXML() gt
LightPath 2014copy - httpwwwjmrenouardfr 25
nom recherche de la balise nom
fils recherche fils directs
nœud recherche fils directs et indirects
wildcard ()
| expression drsquoun Ou
eacuteleacutement courant
eacuteleacutement parent
attr recherche drsquoun eacuteleacutement avec attribut attr
LightPath 2014copy - httpwwwjmrenouardfr 26
id=lsquo5rsquo recherche drsquoun eacuteleacutement avec attribut id valant 5
Book[id=lsquo5rsquo] recherche drsquoun eacuteleacutement book avec un attribut id valant 5
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $tbody = $doc-gtgetElementsByTagName(tbody)-gtitem(0) notre requecircte est relative au noeud tbody $query = count(rowentry[ = en]) $entries = $xpath-gtevaluate($query $tbody) echo Il y a $entries livres anglaisn gt
LightPath 2014copy - httpwwwjmrenouardfr 19
DOMXPtah-gtquery renvoie un objet DOMNodeList
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $query = booktitle $entries = $xpath-gtquery($query) foreach ($entries as $entry) echo Livre trouveacute $entry-gtnodeValue n
gt
LightPath 2014copy - httpwwwjmrenouardfr 20
LightPath 2014copy - httpwwwjmrenouardfr 21
Plus simple que DOM
Utilise la librairie libXML
Plus rapide plus simple
LibXML librairie XML de reacutefeacuterence
LightPath 2014copy - httpwwwjmrenouardfr 22
simplexml_import_dom Conversion drsquoun DOMDocument en
SimpleXMLElement
simple_load_file Conversion un fichier XML en objet
simplexml_load_string Conversion drsquoune chaicircne XML en objet
LightPath 2014copy - httpwwwjmrenouardfr 23
Lrsquoobjet SimpleXMLElement Meacutethode asXML($nomDeFichier)
Extraction drsquoune chaicircne de caractegravere XML
file_put_contents pour eacutecrire dans un fichier
LightPath 2014copy - httpwwwjmrenouardfr 24
Expression XPath possible
Faccedilon la plus rapide
ltphp $xml= simple_load_file(lsquobookxmlrsquo) $result = $xml-gtxpath(booktitle)
while(list( $node) = each($result))
echo $node-gtasXML() gt
LightPath 2014copy - httpwwwjmrenouardfr 25
nom recherche de la balise nom
fils recherche fils directs
nœud recherche fils directs et indirects
wildcard ()
| expression drsquoun Ou
eacuteleacutement courant
eacuteleacutement parent
attr recherche drsquoun eacuteleacutement avec attribut attr
LightPath 2014copy - httpwwwjmrenouardfr 26
id=lsquo5rsquo recherche drsquoun eacuteleacutement avec attribut id valant 5
Book[id=lsquo5rsquo] recherche drsquoun eacuteleacutement book avec un attribut id valant 5
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28
DOMXPtah-gtquery renvoie un objet DOMNodeList
ltphp $doc = new DOMDocument $doc-gtload(bookxml) $xpath = new DOMXPath($doc) $query = booktitle $entries = $xpath-gtquery($query) foreach ($entries as $entry) echo Livre trouveacute $entry-gtnodeValue n
gt
LightPath 2014copy - httpwwwjmrenouardfr 20
LightPath 2014copy - httpwwwjmrenouardfr 21
Plus simple que DOM
Utilise la librairie libXML
Plus rapide plus simple
LibXML librairie XML de reacutefeacuterence
LightPath 2014copy - httpwwwjmrenouardfr 22
simplexml_import_dom Conversion drsquoun DOMDocument en
SimpleXMLElement
simple_load_file Conversion un fichier XML en objet
simplexml_load_string Conversion drsquoune chaicircne XML en objet
LightPath 2014copy - httpwwwjmrenouardfr 23
Lrsquoobjet SimpleXMLElement Meacutethode asXML($nomDeFichier)
Extraction drsquoune chaicircne de caractegravere XML
file_put_contents pour eacutecrire dans un fichier
LightPath 2014copy - httpwwwjmrenouardfr 24
Expression XPath possible
Faccedilon la plus rapide
ltphp $xml= simple_load_file(lsquobookxmlrsquo) $result = $xml-gtxpath(booktitle)
while(list( $node) = each($result))
echo $node-gtasXML() gt
LightPath 2014copy - httpwwwjmrenouardfr 25
nom recherche de la balise nom
fils recherche fils directs
nœud recherche fils directs et indirects
wildcard ()
| expression drsquoun Ou
eacuteleacutement courant
eacuteleacutement parent
attr recherche drsquoun eacuteleacutement avec attribut attr
LightPath 2014copy - httpwwwjmrenouardfr 26
id=lsquo5rsquo recherche drsquoun eacuteleacutement avec attribut id valant 5
Book[id=lsquo5rsquo] recherche drsquoun eacuteleacutement book avec un attribut id valant 5
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28
LightPath 2014copy - httpwwwjmrenouardfr 21
Plus simple que DOM
Utilise la librairie libXML
Plus rapide plus simple
LibXML librairie XML de reacutefeacuterence
LightPath 2014copy - httpwwwjmrenouardfr 22
simplexml_import_dom Conversion drsquoun DOMDocument en
SimpleXMLElement
simple_load_file Conversion un fichier XML en objet
simplexml_load_string Conversion drsquoune chaicircne XML en objet
LightPath 2014copy - httpwwwjmrenouardfr 23
Lrsquoobjet SimpleXMLElement Meacutethode asXML($nomDeFichier)
Extraction drsquoune chaicircne de caractegravere XML
file_put_contents pour eacutecrire dans un fichier
LightPath 2014copy - httpwwwjmrenouardfr 24
Expression XPath possible
Faccedilon la plus rapide
ltphp $xml= simple_load_file(lsquobookxmlrsquo) $result = $xml-gtxpath(booktitle)
while(list( $node) = each($result))
echo $node-gtasXML() gt
LightPath 2014copy - httpwwwjmrenouardfr 25
nom recherche de la balise nom
fils recherche fils directs
nœud recherche fils directs et indirects
wildcard ()
| expression drsquoun Ou
eacuteleacutement courant
eacuteleacutement parent
attr recherche drsquoun eacuteleacutement avec attribut attr
LightPath 2014copy - httpwwwjmrenouardfr 26
id=lsquo5rsquo recherche drsquoun eacuteleacutement avec attribut id valant 5
Book[id=lsquo5rsquo] recherche drsquoun eacuteleacutement book avec un attribut id valant 5
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28
Plus simple que DOM
Utilise la librairie libXML
Plus rapide plus simple
LibXML librairie XML de reacutefeacuterence
LightPath 2014copy - httpwwwjmrenouardfr 22
simplexml_import_dom Conversion drsquoun DOMDocument en
SimpleXMLElement
simple_load_file Conversion un fichier XML en objet
simplexml_load_string Conversion drsquoune chaicircne XML en objet
LightPath 2014copy - httpwwwjmrenouardfr 23
Lrsquoobjet SimpleXMLElement Meacutethode asXML($nomDeFichier)
Extraction drsquoune chaicircne de caractegravere XML
file_put_contents pour eacutecrire dans un fichier
LightPath 2014copy - httpwwwjmrenouardfr 24
Expression XPath possible
Faccedilon la plus rapide
ltphp $xml= simple_load_file(lsquobookxmlrsquo) $result = $xml-gtxpath(booktitle)
while(list( $node) = each($result))
echo $node-gtasXML() gt
LightPath 2014copy - httpwwwjmrenouardfr 25
nom recherche de la balise nom
fils recherche fils directs
nœud recherche fils directs et indirects
wildcard ()
| expression drsquoun Ou
eacuteleacutement courant
eacuteleacutement parent
attr recherche drsquoun eacuteleacutement avec attribut attr
LightPath 2014copy - httpwwwjmrenouardfr 26
id=lsquo5rsquo recherche drsquoun eacuteleacutement avec attribut id valant 5
Book[id=lsquo5rsquo] recherche drsquoun eacuteleacutement book avec un attribut id valant 5
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28
simplexml_import_dom Conversion drsquoun DOMDocument en
SimpleXMLElement
simple_load_file Conversion un fichier XML en objet
simplexml_load_string Conversion drsquoune chaicircne XML en objet
LightPath 2014copy - httpwwwjmrenouardfr 23
Lrsquoobjet SimpleXMLElement Meacutethode asXML($nomDeFichier)
Extraction drsquoune chaicircne de caractegravere XML
file_put_contents pour eacutecrire dans un fichier
LightPath 2014copy - httpwwwjmrenouardfr 24
Expression XPath possible
Faccedilon la plus rapide
ltphp $xml= simple_load_file(lsquobookxmlrsquo) $result = $xml-gtxpath(booktitle)
while(list( $node) = each($result))
echo $node-gtasXML() gt
LightPath 2014copy - httpwwwjmrenouardfr 25
nom recherche de la balise nom
fils recherche fils directs
nœud recherche fils directs et indirects
wildcard ()
| expression drsquoun Ou
eacuteleacutement courant
eacuteleacutement parent
attr recherche drsquoun eacuteleacutement avec attribut attr
LightPath 2014copy - httpwwwjmrenouardfr 26
id=lsquo5rsquo recherche drsquoun eacuteleacutement avec attribut id valant 5
Book[id=lsquo5rsquo] recherche drsquoun eacuteleacutement book avec un attribut id valant 5
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28
Lrsquoobjet SimpleXMLElement Meacutethode asXML($nomDeFichier)
Extraction drsquoune chaicircne de caractegravere XML
file_put_contents pour eacutecrire dans un fichier
LightPath 2014copy - httpwwwjmrenouardfr 24
Expression XPath possible
Faccedilon la plus rapide
ltphp $xml= simple_load_file(lsquobookxmlrsquo) $result = $xml-gtxpath(booktitle)
while(list( $node) = each($result))
echo $node-gtasXML() gt
LightPath 2014copy - httpwwwjmrenouardfr 25
nom recherche de la balise nom
fils recherche fils directs
nœud recherche fils directs et indirects
wildcard ()
| expression drsquoun Ou
eacuteleacutement courant
eacuteleacutement parent
attr recherche drsquoun eacuteleacutement avec attribut attr
LightPath 2014copy - httpwwwjmrenouardfr 26
id=lsquo5rsquo recherche drsquoun eacuteleacutement avec attribut id valant 5
Book[id=lsquo5rsquo] recherche drsquoun eacuteleacutement book avec un attribut id valant 5
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28
Expression XPath possible
Faccedilon la plus rapide
ltphp $xml= simple_load_file(lsquobookxmlrsquo) $result = $xml-gtxpath(booktitle)
while(list( $node) = each($result))
echo $node-gtasXML() gt
LightPath 2014copy - httpwwwjmrenouardfr 25
nom recherche de la balise nom
fils recherche fils directs
nœud recherche fils directs et indirects
wildcard ()
| expression drsquoun Ou
eacuteleacutement courant
eacuteleacutement parent
attr recherche drsquoun eacuteleacutement avec attribut attr
LightPath 2014copy - httpwwwjmrenouardfr 26
id=lsquo5rsquo recherche drsquoun eacuteleacutement avec attribut id valant 5
Book[id=lsquo5rsquo] recherche drsquoun eacuteleacutement book avec un attribut id valant 5
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28
nom recherche de la balise nom
fils recherche fils directs
nœud recherche fils directs et indirects
wildcard ()
| expression drsquoun Ou
eacuteleacutement courant
eacuteleacutement parent
attr recherche drsquoun eacuteleacutement avec attribut attr
LightPath 2014copy - httpwwwjmrenouardfr 26
id=lsquo5rsquo recherche drsquoun eacuteleacutement avec attribut id valant 5
Book[id=lsquo5rsquo] recherche drsquoun eacuteleacutement book avec un attribut id valant 5
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28
id=lsquo5rsquo recherche drsquoun eacuteleacutement avec attribut id valant 5
Book[id=lsquo5rsquo] recherche drsquoun eacuteleacutement book avec un attribut id valant 5
LightPath 2014copy - httpwwwjmrenouardfr 27
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28
LightPath Socieacuteteacute de conseil et drsquoingeacutenierie
Formations Conseil Audit et mise en œuvre
jmrenouardlightpathfr
Jean-Marie RENOUARD jmrenouardgmailcom
Twitter jmrenouard
httpwwwjmrenouardfr
LightPath 2014copy - httpwwwjmrenouardfr 28