XXI. Traitement de documents XML▲
Nous considérons le fichier XML [data.xml] suivant :
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<?xml version="1.0" encoding="UTF-8"?>
<tribu>
<enseignant>
<personne
sexe
=
"M"
>
<nom>
dupont</nom>
<prenom>
jean</prenom>
<age>
28</age>
ceci est un commentaire
</personne>
<section>
27</section>
</enseignant>
<etudiant>
<personne
sexe
=
"F"
>
<nom>
martin</nom>
<prenom>
charline</prenom>
<age>
22</age>
</personne>
<formation>
dess IAIE</formation>
</etudiant>
</tribu>
Nous analysons ce document avec le script suivant :
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<?php
// fichier XML à exploiter
$FILE_NAME
=
"data.xml"
;
// exploitation
$xml
=
simplexml_load_file($FILE_NAME
);
print_r($xml
);
print_r($xml
->
enseignant->
personne[
'sexe'
]
);
$nom
=
$xml
->
enseignant->
personne->
nom;
print
"nom=
$nom\n
"
;
$sexe
=
$xml
->
enseignant->
personne[
'sexe'
];
print
"sexe=
$sexe\n
"
;
$formation
=
$xml
->
etudiant->
formation;
print
"formation=
$formation\n
"
;
print
"isset="
.
isset($xml
->
enseignant->
personne->
nom).
"
\n
"
;
print
"isset="
.
isset($xml
->
enseignant->
personne->
xx).
"
\n
"
;
Nous utilisons ici un module PHP appelé [simpleXML] qui permet d'exploiter des documents XML.
- ligne 6 : chargement du fichier XML ;
- ligne 7 : affichage du document XML ;
- ligne 8 : affichage de la valeur de l'attribut 'sexe' d'une personne enseignante : <enseignant><personne sexe='…'> ;
- ligne 9 : affichage de la valeur de la 1re balise <enseignant><personne><nom> ;
On notera que la balise racine <tribu> n’intervient pas dans le code. Elle pourrait être n’importe quoi ;
Résultats console
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
SimpleXMLElement Object
(
[enseignant] => SimpleXMLElement Object
(
[personne] => SimpleXMLElement Object
(
[@attributes] => Array
(
[sexe] => M
)
[nom] => dupont
[prenom] => jean
[age] => 28
)
[section] => 27
)
[etudiant] => SimpleXMLElement Object
(
[personne] => SimpleXMLElement Object
(
[@attributes] => Array
(
[sexe] => F
)
[nom] => martin
[prenom] => charline
[age] => 22
)
[formation] => dess IAIE
)
)
SimpleXMLElement Object
(
[0] => M
)
nom=dupont
sexe=M
formation=dess IAIE
isset=1
isset=
- lignes 1-37 : le document XML sous la forme d'un objet de type [simpleXML].
Le script précédent ne nous montre pas toutes les possibilités du module [simpleXML] mais il nous suffit pour écrire une nouvelle version de l'exercice d’application.