XML verwerken met PHP

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

22/08/2014 13:14:08
Quote Anchor link
Hallo mensen,

Ik dacht, laat ik eens wat proberen met XML.
Ik heb al een aantal scripts geprobeerd maar bij allemaal krijg ik oneindige foutmeldingen.

Daarom wil ik graar jullie manier om php te verwerken weten.

Dit is mijn XML:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-8"?>
<persoon>
    <naam>Piet</naam>
    <leeftijd>45</leeftijd>
</persoon>
<persoon>
    <naam>Jan</naam>
    <leeftijd>54</leeftijd>
</persoon>


Hoe kan ik er dit uit laten komen:

Piet is 45 jaar oud
Jan is 54 jaar oud

Groet
Pascal
 
PHP hulp

PHP hulp

29/03/2024 13:46:55
 
Ramon van Dongen

Ramon van Dongen

22/08/2014 13:19:20
Quote Anchor link
Wat heb je al precies geprobeerd waar de fouten/foutmeldingen uit komen?

Probeer bijvoorbeeld eens:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
// foutmeldingen aanzetten
ini_set('display_errors', 'On');
error_reporting(E_ALL | E_STRICT);

$xmlbestand = ''; // hier vul je dan de url van je xml bestand in

if($xml = simplexml_load_file($xmlbestand)){

    foreach($xml->persoon AS $persoon){
    echo $persoon->naam.' is '.$persoon->leeftijd.' jaar oud <br>';
    }

}

?>
Gewijzigd op 22/08/2014 13:20:16 door Ramon van Dongen
 

22/08/2014 13:21:16
Quote Anchor link
http://www.w3schools.com/php/showphp.asp?filename=demo_simplexml3 En dan heb ik het bewerkt tot hij bij mijn xml past
 
Ramon van Dongen

Ramon van Dongen

22/08/2014 13:23:29
Quote Anchor link
Quote:
En dan heb ik het bewerkt tot hij bij mijn xml past

Post die bewerking hier eens dan (tussen code tags)
Gewijzigd op 22/08/2014 13:23:59 door Ramon van Dongen
 
- Ariën  -
Beheerder

- Ariën -

22/08/2014 13:25:41
Quote Anchor link
Heb je al gekeken naar SimpleXML?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$xml
=simplexml_load_file("namenlijst.xml");
foreach($xml->persoon as $persoon) {
    echo $persoon->naam. " is ".$persoon->leeftijd." jaar oud.<br />";

}

?>


Als het goed is moet dit werken.
Gewijzigd op 22/08/2014 13:26:57 door - Ariën -
 

22/08/2014 13:25:50
Quote Anchor link
Ik heb nu deze code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php

    $xmlbestand
= 'f/personen.xml'; // hier vul je dan de url van je xml bestand in

    if($xml = simplexml_load_file($xmlbestand)){

        foreach($xml->persoon AS $persoon){
            echo $persoon->naam.' is '.$persoon->leeftijd.' jaar oud <br>';
        }

    }



?>


en ik krijg deze foutmeldingen:


Warning: simplexml_load_file(): f/personen.xml:6: parser error : Extra content at the end of the document in C:\Users\pascal\Box Sync\localhost\xmlapps\index.php on line 5

Warning: simplexml_load_file(): <persoon> in C:\Users\pascal\Box Sync\localhost\xmlapps\index.php on line 5

Warning: simplexml_load_file(): ^ in C:\Users\pascal\Box Sync\localhost\xmlapps\index.php on line 5
 
- Ariën  -
Beheerder

- Ariën -

22/08/2014 13:30:09
Quote Anchor link
Je kan geen dubbele parent-nodes gebruiken in je XML.
Gebruik dan dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="UTF-8"?>
<personen>
    <persoon>
           <naam>Piet</naam>
           <leeftijd>45</leeftijd>
    </persoon>
    <persoon>
            <naam>Jan</naam>
            <leeftijd>54</leeftijd>
    </persoon>
</personen>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$xml
=simplexml_load_file("namenlijst.xml");
foreach($xml->personen as $persoon) {
    echo $persoon->naam. " is ".$persoon->leeftijd." jaar oud.<br />";

}

?>
Gewijzigd op 22/08/2014 13:33:41 door - Ariën -
 

22/08/2014 13:33:27
Quote Anchor link
Nu werkt het! Bedankt!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.