Skip to content

12. معالجة مستندات XML (simplexml_01)

انظر الملف [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
 
// file XML to be processed
$FILE_NAME = "data.xml";
// operation
$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 تسمى [simpleXML] تسمح لنا بمعالجة مستندات XML.

  • السطر 6: تحميل ملف XML
  • السطر 7: عرض مستند XML
  • السطر 8: عرض قيمة سمة "sex" الخاصة بأحد المعلمين: <teacher><person sex='...'>
  • السطر 9: عرض قيمة العلامة الأولى <teacher><person><name>

النتائج

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=
  • الأسطر 1-37: مستند XML في شكل كائن [simpleXML].

لا يوضح لنا البرنامج النصي السابق جميع إمكانيات وحدة [simpleXML]، ولكنه كافٍ لنا لكتابة النسخة النهائية من تمرين IMPOTS.