Php + xml

Status
Niet open voor verdere reacties.

bruglione

Gebruiker
Lid geworden
28 okt 2008
Berichten
79
Beste,

Onlangs ben ik begonnen op een stage als programmeur, ik heb nu een simpele begin opdracht gekregen om te wennen aan PHP. Ik moet een simpele webpagina maken waarin ik een XML bestand display doormiddel van PHP.

XML bestand:

Code:
<games>
  <game name='Warcraft 1' genre='strategy' year='1995' developer='Blizzard'/>
  <game name='Assasins Creed' genre='RPG' year='2007' developer='Activision' />
  <game name='Gears of war' genre='shooter' year='2007' developer='Epic Games' />
  <game name='Red Alert 2' genre='strategy' year='2000' developer='Westwood' />
  <game name='Dragon Age' genre='RPG' year='2009'> 
    <developers>
      <developer>EA Games</developer>
      <developer>Bioware</developer>
    </developers>
  </game>
</games>

PHP script:

Code:
<?php
$doc = new DOMDocument();             
$doc->load('test.xml');

$gameNodes= $doc->getElementsByTagName('game');
for ($idx = 0; $idx < $gameNodes->length; $idx++) {
  $g = $gameNodes->item($idx);
  echo "<tr>";
  echo "<td>".$g->getAttribute("name")."</td>";
  echo "<td>".$g->getAttribute("genre")."</td>";
  echo "<td>".$g->getAttribute("year")."</td>";
  echo "<td>".$g->getAttribute("developer")."</td>";
  echo "</tr>";
}
?>

Nu is de bedoeling dat de 2 elements/nodes (developer) helemaal onderaan ook worden weergeven want op het moment worden alleen de attributes weergeven en niet de elements. Is dit mogenlijk en weet iemand dan hoe?
 
Uiteraard stom van me :)

PHP (XML is nog hetzelfde):

Code:
<?php
$doc = new DOMDocument();             
$doc->load('test.xml');

$gameNodes= $doc->getElementsByTagName('game');
for ($idx = 0; $idx < $gameNodes->length; $idx++) {
  $g = $gameNodes->item($idx);
  echo "<tr>";
  echo "<td>".$g->getAttribute("name")."</td>";
  echo "<td>".$g->getAttribute("genre")."</td>";
  echo "<td>".$g->getAttribute("year")."</td>";
  echo "<td>";
$developerNodes= $g->getElementsByTagName('developer');
for ($didx = 0; $didx < $developerNodes->length; $didx++) {
$h = $developerNodes->item($didx);
  echo "<div>".$h->firstChild->nodeValue."</div>";
  } 
  echo "</td>";
  echo "</tr>";
  }
?>
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan