Vraag & Antwoord

Webprogrammeren & scripting

[PHP] XML parsen

Anoniem
BasHamar
1 antwoord
  • Ik probeer een extern XML bestand te parsen. Hiervoor heb ik de volgende code geschreven:[code:1:f5b16eb000]<?php

    // Bronbestand
    $xmlsourcefile = "xml.txt";

    // Document object creëren
    $dom = xmldocfile($xmlsourcefile) or die ("Kan XML bestand niet openen");

    // Verwijzing naar root node
    $root = $dom->root() or die ("Kan root niet openen");

    // Toon naam van de root
    echo $root->name;

    // Verwijzing naar de sections
    $sections = $root->children() or die ("Kan sections niet opvragen");
    for($i=0;$i<count($sections);$i++){
    // Controle of we met een geldige node te maken hebben ivm spaties is het bronbestand
    if($sections[$i]->type == XML_ELEMENT_NODE){
    // Toon name-attribuut van deze sectie
    echo '<b>'.domxml_getattr($sections[$i], "name").'</b><br />';
    // Verwijzing naar documents
    $documents = $sections[$i]->children() or die ("Kan documents niet opvragen");
    for($j=0;$j<count($documents);$j++){
    // Wederom controle
    if($documents[$j]->type == XML_ELEMENT_NODE){
    // Toon inhoud (content) van document
    echo '– <i>'.$documents[$j]->content.'</i><br />';
    // Toon href-attribuut
    echo '—- <u>'.domxml_getattr($documents[$j], "href").'</u><br />';
    }
    }
    }
    }
    ?>[/code:1:f5b16eb000]Het bronbestand, laten we het "xml.txt" noemen, bevat:[code:1:f5b16eb000]<basje>
    <section name="Humor">
    <document href="http://www.basje.com/humor/aaa.html">AAA</document>
    <document href="http://www.basje.com/humor/bbb.html">BBB</document>
    </section>
    <section name="Links">
    <document href="http://www.basje.com/links/ccc.html">CCC</document>
    <document href="http://www.basje.com/links/ddd.html">DDD</document>
    </section>
    </basje>[/code:1:f5b16eb000]Helaas werkt de code niet, de content & rootnaam worden niet getoond, maar de attributen wel. :o
    Wie o wie vertelt me waar de fout zit?

    - Bas

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.