21. پردازش اسناد XML

ما در حال بررسی فایل زیر هستیم: XML [data.xml]:
<?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>
ما این سند را با استفاده از اسکریپت زیر تحلیل میکنیم:
<?php
//XML فایلی که باید پردازش شود
$FILE_NAME = "data.xml";
//پردازش
$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";
در اینجا ما از ماژولی به نام PHP استفاده میکنیم که به ما امکان پردازش اسناد XML را میدهد.
- خط ۶: بارگذاری فایل XML;
- خط ۷: نمایش سند XML;
- خط ۸: نمایش مقدار ویژگی 'sexe' برای یک معلم: <teacher><person gender='…'>;
- خط ۹: نمایش مقدار اولین تگ <teacher><person><surname>;
توجه داشته باشید که تگ ریشه <tribu> در کد ظاهر نمیشود. میتواند هر چیزی باشد؛
خروجی کنسول
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=
- خطوط ۱–۳۷: سند XML به صورت یک شیء از نوع [simpleXML].
اسکریپت بالا تمام امکانات ماژول [simpleXML] را به ما نشان نمیدهد، اما برای نوشتن نسخه جدیدی از تمرین عملی برای ما کافی است.