suppression d'un element grace a son id [xml] php5

Invité
Invité n'ayant pas de compte PHPfrance

20 oct. 2007, 11:56

merci c'est kool de ta part!

si tu as besoin d'autres element sje suis dispo!

:lol:

toomwayer
Invité n'ayant pas de compte PHPfrance

20 oct. 2007, 11:57

merci c'est kool de ta part!

Eléphant du PHP | 443 Messages

20 oct. 2007, 12:31

Bon alors voilà, ce que tu cherches:

Source DTD:

Code : Tout sélectionner

<!ELEMENT playlist (trackList)> <!ATTLIST playlist version CDATA #REQUIRED> <!ELEMENT trackList (track*)> <!ELEMENT track (title, creator, location)> <!ATTLIST track id ID #REQUIRED> <!ELEMENT title (#PCDATA)> <!ELEMENT creator (#PCDATA)> <!ELEMENT location (#PCDATA)>
Source XML:

Code : Tout sélectionner

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE playlist SYSTEM "test.dtd"> <playlist version="1"> <trackList> <track id="a1"> <title>Il est temps</title> <creator>cava</creator> <location>audio/il est temps.mp3</location> </track> <track id="a2"> <title>Il est temps</title> <creator>cava</creator> <location>audio/il est temps.mp3</location> </track> </trackList> </playlist>
Source PHP:
<?php
$xml = 'test.xml';

$document = new DOMDocument();
$document->validateOnParse = true;
$document->load($xml);

$node = $document->getElementById("a2");
$node->parentNode->removeChild($node);

header('content-type: text/xml');
echo $document->saveXML();
?>
Voilà les erreurs:
- la ligne <!DOCTYPE trackList dans ta DTD à priori ne correspond à rien
- il te manque l'élément playlist et la déclaration de la propriété version
- l'utilisation de la dtd dans le xml ne s'indique pas par <!DOCTYPE dtd SYSTEM "xml/dtd.dtd">
..mais par <!DOCTYPE playlist SYSTEM "xml/dtd.dtd">
- dernière chose dans un type ID, les chaînes d'indentifiant ne peuvent pas commencer par un chiffre.

Voilà, si tu prends les sources de la page, ton problème devrait être réglé.


Tracker.

[edit] si tu veux un tuto sur les DTD rends toi ici

toomwayer
Invité n'ayant pas de compte PHPfrance

20 oct. 2007, 12:56

merci beaucoup tracker!

ca marche nikel!
il fallait le savoir pour le "a2" IoI !!

tu me diras faut lire la doc :lol:

tu viens de mettre fin a 3 jours de galère!

nb:
$document->saveXML(); ne marche pas
mais
$document ->save($xml); marche!

merci encore!

Eléphant du PHP | 443 Messages

20 oct. 2007, 13:00

merci beaucoup tracker!

ca marche nikel!
il fallait le savoir pour le "a2" IoI !!

tu me diras faut lire la doc :lol:

tu viens de mettre fin a 3 jours de galère!

nb:
$document->saveXML(); ne marche pas
mais
$document ->save($xml); marche!

merci encore!
saveXML(...) c'etait juste pour produire un affichage (debug).
Bon courage pour la suite :wink:


Tracker.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

20 oct. 2007, 13:07

Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton Image qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

toomwayer
Invité n'ayant pas de compte PHPfrance

20 oct. 2007, 19:31

ok je vais m'inscrire!

ce forum est vraiment efficace j'espere qu'à mon tour je pourrais aider kelkun ! :wink: :arrow:

ViPHP
ViPHP | 4039 Messages

20 oct. 2007, 19:36

(sur un air connu) un jour viendra, tu aideras, peut-être..
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.