simplexml_load_file
Poster: tonysimplexml_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->1 . " and " . $xml->email->2 . "n";
Lijkt me duidelijk.

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->1 = "andereemail@gmail.com";
$xml->email->2 = "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.
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:
|  |
| 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  |
| 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
|