[PHP] XML uitlezen

Pagina: 1
Acties:

  • conorach
  • Registratie: Juni 2001
  • Laatst online: 26-11-2021
Ik wil een XML-bestand kunnen uitlezen met PHP.

Het script moet checken wanneer er een tag begint en eindigt, de data daartussen moet dan in bijvoorbeeld een array gezet worden. Volgens een vriend moet dit kaarakter voor karakter gebeuren.

Hoe moet ik dit aanpakken?
code:
1
2
3
4
<bedrijf>
    <naam>Albert Heijn</naam>
    <postcode>5555</postcode>
</bedrijf>

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

stackbased?

Doet iets met Cloud (MS/IBM)


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 23:30
while loop met regex?

  • conorach
  • Registratie: Juni 2001
  • Laatst online: 26-11-2021
Ik moet er wel even bij zeggen dat ik pas net met PHP ben begonnen en er in dit geval echt niet uitkom.

Dus wat meer uitleg (d.w.z. reply's van meer dan 2 woorden) zou ik wel relaxed vinden.. :)

En ja! Ik heb de PHP-manual al uitgevonden

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

www . php . net / manual

4 woorden 3 karakters ;)

Doet iets met Cloud (MS/IBM)


  • RdeTuinman
  • Registratie: Mei 2001
  • Laatst online: 16-08 07:25
Misschien eens kijken naar de xml-parser van/in php?

http://www.php.net/manual/en/ref.xml.php

Kijk eens naar die voorbeelden die erbij staan ;)

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 23:30
Je bent net met php begonnen en nu wil je dit maken.
Ok.

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Je kan het op een aantal verschillende manieren doen. Ik heb zelf inmiddels implementaties met pregs, een loop door alle characters en domxml. Ik probeer het nu met die expat-based xml library, maar dat wil nog niet helemaal lukken.

Als je de beschikking hebt over de domxml extensie is dat denk ik het makkelijkst.

Rustacean


Verwijderd

Ik zou zelf denk ik de standaard functies voor xml in php gebruiken (zie link van RdeTuinman ). En anders idd een leuk loopje bouwen wat alles naar een array parsed:
PHP:
1
<?function parseXml($string){    $string = preg_replace("/^\s*(.*)\s*$/is","\\1",$string);    if(preg_match("/^\<(.*?) ?(.*?)>(.*?)\<\/\\1>$/is",$string,$data))    {    while(preg_match("/^\s*(.*?)=(.*?)\s*/i",$data[2],$data2))        {    $array[$data[1]][atts][$data2[1]] = $data2[2];        }        $array[$data[1]][cont] = parseXml($data[3]);    }    else    {    $array = $string;    }    return $array;}?>

Dit is zomaar ff een uit de losse pols getypte functie, geen idee of dit werkt, maar het ging ook maar om het principe :P
Pagina: 1