Versio

Iemand een simpele snippet voor XML doc uitlezen?

Overzicht Reageren

Merijn Venema

Merijn Venema

15/12/2010 19:18:43
Quote Anchor link
Beste leden,

Edit:
Het gaat hier om de DOMElement en NIET om de SimpleXML variant

Heeft iemand stomtoevallig een simpele snippet welke hij wil delen?

Ik zoek een simpele functie om een xml document recursief uit te lezen en alle waardes zoals ze in de XML staan, op te slaan in een simpele array.

Iets in de trend van:
$array['node'] (bijv: "html")
$array['node']['kind_van_node'] (bijv: "head")
$array['node']['kind_van_node']['element'] (bijv: "p")
$array['node']['kind_van_node']
$array['node']['kind_van_node']
$array['node']['kind_van_node']
$array['node']['kind_van_node']['element'] (bijv: "a")
$array['node']['kind_van_node']['element'] (bijv: "div")

etc. et cetera. Het is de bedoeling dat elk element dat ook daadwerkelijk tekst bevat, makkelijk uitgelezen kan worden door middel van hierboven.

Stel ik wil de tekst van p, dat ik gewoon $array['html']['body']['p'] kan gebruiken.

Als het niet helemaal duidelijk is, mijn excuus, kan het ook niet echt lekker omschrijven. Maar vraag gerust!

Groet
Gewijzigd op 15/12/2010 19:19:27 door Merijn Venema
 
PHP hulp

PHP hulp

25/05/2012 00:05:10
Gesponsorde koppelingen:
 
Karl Karl

Karl Karl

15/12/2010 19:49:38
Quote Anchor link
Met simplexml of dom.
 
Merijn Venema

Merijn Venema

15/12/2010 20:13:20
Quote Anchor link
Beste Karl,

Zo ver was ik al wel dank je. Ik gebruik dus de DOM voor het uitlezen van een XML document, alles wordt keurig ingeladen etc. Mijn vraag echter is of iemand een snippet heeft om een complete array te maken van de data.

Heb nu dit, maar dit werkt dus niet helemaal lekker.
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
16
<?php

private function setXml ($node)
    {

        foreach($this->xpath->query($node) as $nodes)
        {

            if($nodes->hasChildNodes())
            {

                $this->setXml($nodes->textContent);
            }

            else{
               $this->nodes[$this->dom->saveXML($nodes)] = $nodes->textContent;
            }
        }
    }

?>
Gewijzigd op 15/12/2010 20:14:04 door Merijn Venema
 
Karl Karl

Karl Karl

15/12/2010 20:20:16
Quote Anchor link
Oké dat was niet helemaal duidelijk uit je verhaal.
Op php.net staat vast wel zo'n snippet (je bent vast niet de eerste die dit wilt), neem nou bijvoorbeeld dit book.dom.php#93717. Volgens mij is dat wel ongeveer wat jij zoekt.
 
Merijn Venema

Merijn Venema

15/12/2010 20:43:01
Quote Anchor link
Beste Karl,

Hartstikke bedankt, die functie werkt inderdaad na een beetje ombouwen. Stom dat ik daar compleet overheen gekeken heb..

In ieder geval weer opgelost :)
 



Overzicht Reageren

Get Adobe Flash player