bruglione
Gebruiker
- Lid geworden
- 28 okt 2008
- Berichten
- 79
Hoi Helpmij,
Ik ben bezig met het maken van een XML database die ik wil bewerken met PHP (toevoegen, verwijderen en editen).
Het toevoegen en verwijderen gaat al goed, maar nu wil ik meerdere elements kunnen bewerken (de developer nodes).
Mijn XML:
PHP script om te editen:
Het editen van de attributes name, genre en year gaat al goed, maar nu moeten de developers nog want dat kunnen er meerdere zijn per game en deze staan in elements ipv attributes.
Iemand hier tips voor?
Ik ben bezig met het maken van een XML database die ik wil bewerken met PHP (toevoegen, verwijderen en editen).
Het toevoegen en verwijderen gaat al goed, maar nu wil ik meerdere elements kunnen bewerken (de developer nodes).
Mijn XML:
Code:
<games>
<game id="1" name="Warcraft 1" genre="Strategy" year="1995">
<developers>
<developer>Blizzard</developer>
</developers>
</game>
<game id="2" name="Assasins Creed" genre="RPG" year="2007">
<developers>
<developer>Activision</developer>
</developers>
</game>
<game id="3" name="Gears of war" genre="Shooter" year="2007">
<developers>
<developer>Epic games</developer>
</developers>
</game>
<game id="4" name="Red Alert 2" genre="Strategy" year="2000">
<developers>
<developer>Westwood</developer>
</developers>
</game>
<game id="5" name="Dragon Age" genre="RPG" year="2009">
<developers>
<developer>EA Games</developer>
<developer>Bioware</developer>
</developers>
</game>
</games>
PHP script om te editen:
PHP:
<?php
$doc = new DOMDocument();
$doc->load( 'games.xml' );
$doc->formatOutput = true;
$id = $_GET['id'];
$xpath = new DOMXPath($doc);
$query = '//games/game[@id = "'.$id.'"]';
$entries = $xpath->query($query);
$e = $entries->item(0);
if(array_key_exists('name',$_POST)){
$e->setAttribute("name", $_POST["name"]);
$e->setAttribute("genre", $_POST["genre"]);
$e->setAttribute("year", $_POST["year"]);
$doc->save( 'games.xml' );
header("Location: {$_SERVER['HTTP_REFERER']}");
}
?>
Het editen van de attributes name, genre en year gaat al goed, maar nu moeten de developers nog want dat kunnen er meerdere zijn per game en deze staan in elements ipv attributes.
Iemand hier tips voor?