28
Jean-Marie Renouard LightPath 2014©

Fichier XML et PHP5

Embed Size (px)

DESCRIPTION

Présentation de la gestion de fichier XML avec PHP5

Citation preview

Page 1: Fichier XML et PHP5

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

Page 2: Fichier XML et PHP5

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

Page 3: Fichier XML et PHP5

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

Page 4: Fichier XML et PHP5

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

Page 5: Fichier XML et PHP5

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

Page 6: Fichier XML et PHP5

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

Page 7: Fichier XML et PHP5

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

Page 8: Fichier XML et PHP5

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

Page 9: Fichier XML et PHP5

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

Page 10: Fichier XML et PHP5

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

Page 11: Fichier XML et PHP5

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

Page 12: Fichier XML et PHP5

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

Page 13: Fichier XML et PHP5

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

Page 14: Fichier XML et PHP5

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

Page 15: Fichier XML et PHP5

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

Page 16: Fichier XML et PHP5

$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

Page 17: Fichier XML et PHP5

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

Page 18: Fichier XML et PHP5

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

Page 19: Fichier XML et PHP5

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

Page 20: Fichier XML et PHP5

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

Page 21: Fichier XML et PHP5

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

Page 22: Fichier XML et PHP5

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

Page 23: Fichier XML et PHP5

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

Page 24: Fichier XML et PHP5

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

Page 25: Fichier XML et PHP5

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

Page 26: Fichier XML et PHP5

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

Page 27: Fichier XML et PHP5

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

Page 28: Fichier XML et PHP5

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