SimpleXML naar associatieve array

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ward van der Put
Moderator

Ward van der Put

16/09/2014 14:16:29
Quote Anchor link
Met cURL haal ik een XML-bestandje met iDEAL-issuers op:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<issuers>
  <issuer id="0031">ABN Amro</issuer>
  <issuer id="0761">ASN Bank</issuer>
  <issuer id="0721">ING</issuer>
  <issuer id="0801">Knab</issuer>
  <issuer id="0021">Rabobank</issuer>
  <issuer id="0771">RegioBank</issuer>
  <issuer id="0751">SNS Bank</issuer>
  <issuer id="0511">Triodos Bank</issuer>
  <issuer id="0161">Van Lanschot Bankiers</issuer>
</issuers>


Hoe maak ik daarvan met simplexml_load_string() een array in de volgende vorm?

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
$issuers
= array(
    '0031' => 'ABN Amro',
    '0761' => 'ASN Bank',
    '0091' => 'Friesland Bank',
    '0721' => 'ING',
    '0801' => 'Knab',
    '0021' => 'Rabobank',
    '0771' => 'RegioBank',
    '0751' => 'SNS Bank',
    '0511' => 'Triodos Bank',
    '0161' => 'Van Lanschot Bankiers',
);

?>
 
PHP hulp

PHP hulp

14/05/2021 03:32:21
 
Wouter J

Wouter J

16/09/2014 14:44:00
Quote Anchor link
Ik zou altijd DomDocument gebruiken ipv SimpleXml. Dan wordt het zoiets:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

$dom
= new \DomDocument();
// laad de xml
$dom->loadXml($data);

$issuers = array();
foreach ($dom->getElementsByTagName('issuer') as $issuer) {
    $issuers[$issuer->getAttribute('id')] = $issuer->nodeValue;
}


var_dump($issuers);
?>
 
Ward van der Put
Moderator

Ward van der Put

16/09/2014 14:55:25
Quote Anchor link
Dank je, Wouter!

Waarom eigenlijk liever DomDocument dan SimpleXML?
 
Wouter J

Wouter J

16/09/2014 15:13:33
Quote Anchor link
> Waarom eigenlijk liever DomDocument dan SimpleXML?

Het kan meer en heeft een interface die stukken gebruikersvriendelijker is dan SimpleXml (vooral als je een beetje JavaScript kennis hebt).
 
Ward van der Put
Moderator

Ward van der Put

16/09/2014 16:57:12
Quote Anchor link
Okay, duidelijk. Het werkt inderdaad prima, dus houden we het zo.
 



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.