onderschaduw
Home HomeScripts HomeArtikelen HomeTemplates HomeForum HomeZoeken
simplexml_load_file
Poster: tony

simplexml_load_file

XML parsen dmv. PHP III


Introductie:
Zelf in het nieuwe jaar van 2005 zal webmasterz.nl weer up-to-date proberen te zijn. Zoals jullie misschien weten is eindelijk PHP 5.0 uit en je zal misschien zeggen "boeiend!" Maar ik heb een reden gevonden om eindelijk die update te halen en te installeren. De nieuwe functie in 5.0 is genaamd simplexml_load_file. Het is een dood! dood! simpele manier om XML naar PHP arrays om te zetten.

Je hoeft niet XML parsen dvm PHP I of II te gelezen hebben. Sterker nog vergeet ze want PHP5.0 is here!
Je moet PHP 5.0 geïnstalleerd te hebben.

Begin:
Laten we beginnen met een xml file-tje te bouwen. Net zo als je gezien hebt bij XML parsen dvm PHP I of II.

XML:
Het XML bestand.

code:
1
2
3
4
5
6
7
8
9
<?xml version="1.0"?> 
<user>
   <voornaam>Theo<voornaam>
   <achternaam>Christiaanse<achternaam>
   <leeftijd>18<leeftijd>
   <email>
       <1>Tony@webmasterz.nl</1>
       <2>TheoChristiaanse@GMail.com</2>
   </email>


Als we het zo aankijken ziet het er niet zo moeilijk uit. Je ziet dat deze user met de voornaam Theo en achternaam Christiaanse twee emails heeft in de email tag. De ziet dat in de <1> tag de eerste e-mail is en <2> de tweede.


PHP:
Het PHP bestand.


code:
1
2
3
4
5
6
7
8
9
10
11
12
<?php
// Geef de Dir+naam van het xml bestand. 
$file "bestandsnaam.xml";

// load het bestand in een var. 
$xml simplexml_load_file($file) or die ("Iets ging mis!");

// acces XML data
echo "voornaam: " $xml->voornaam "n";
echo 
"achternaam: " $xml->achternaam "n";
echo 
"leeftijd: " $xml->leeftijd "n";
echo 
"Emails: " $xml->email->" and " .  $xml->email->"n";


Lijkt me duidelijk. smileys Hij heeft wat in de tag user als de var $xml gezet. en als er nog een tag word de var in een var gezet met de naam van de tag. zoals de tag "1" in tag "email."


Dan is er ook nog een mogelijkheid om het xml bestand te veranderen.


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
// Geef de Dir+naam van het xml bestand.
$file "bestandsnaam.xml";

// load het bestand in een var.
$xml simplexml_load_file($file) or die ("Iets ging mis!");

// verander de vars. 
$xml->voornaam "Kees";
$xml->achternaam "Christiaaansen";
$xml->leeftijd "19";
$xml->email->"andereemail@gmail.com";
$xml->email->"yayayayayya@gmail.com";

// Schrijf het terug op het document. 
file_put_contents($file$xml->asXML());


Best wel simpel behalve de laatste zin. Je ziet dat wanneer je de xml terug zet je "$xml->asXML()" moet gebruiken. Dit is omdat het als een standaard xml tree moet gezien worden. inprinciepe doet dat de functie. Met de functie file_put_content() maakt hij het werk af en stopt hij het terug in het bestand.

Het XML bestand:
We doen het op een andere manier. smileys


code:
1
2
3
4
5
6
<?xml version="1.0"?> 
<users>
   <user>Tony</user>
   <user>Theo</user>
   <user>Jeffery</user>
   <user>webmaster</user>


We zien hier een lijstje met users. Het verschil tussen deze en die andere is dat steeds de zelfde tag word gebruikt in de tag "users."


code:
1
2
3
4
5
6
7
8
9
10
11
12
<?php
// Geef de Dir+naam van het xml bestand.
$file "users.xml";

// load het bestand in een var.
$xml simplexml_load_file($file) or die ("Iets ging mis!");

// echo-en maar. 
echo $xml->user[0] . "n";
echo 
$xml->user[1] . "n";
echo 
$xml->user[2] . "n";
echo 
$xml->user[3] . "n";


Redelijk simpel lijkt me.

Als je lui bent kan je het ook laten doen door een foreach functie en laten we eerlijk zijn dat zijn we.


code:
1
2
3
4
5
6
7
8
9
10
11
<?php
// Geef de Dir+naam van het xml bestand.
$file "users.xml";

// load het bestand in een var.
$xml simplexml_load_file($file) or die ("Unable to load XML file!");

// met de foreach() functie printen.
foreach ($xml->user as $user) {
    echo 
"$usern";
}


Redelijk simpel lijkt me.

Rate dit script:
Je hebt nog niet gestemd. Rate hier het artikelen:
zeer slecht
slecht
matig
goed
zeer goed
rating

Reacties:
Er zijn 4 reacties geplaatst.

theo 16-01-2005 09:53
he, ik snap nu ineens hoe XML werkt & hoe XML met PHP samen werkt, super artikel smileys

ppaattyy 31-01-2005 16:22
dat is mooi dat het ge up date word

theo 31-01-2005 18:36
ik vind het super!, nu kan ik de XML voor webmasterz gaan maken dat dan weer werkt op het RSS systeem wat komt in webmasterz 3.0

ppaattyy 02-02-2005 16:28
dat is mooi voor webmasterz.nl


onderschaduw

Copyright © 2002-2008, Gemaakt door: Theo van Meijel, Versie 3.6
85 bezoekers en 899 pageviews vandaag! Totaal 1374 geregistreerde leden!