Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > DOM
DOM Forum d'entraide pour l'extension DOM permettant de manipuler des documents XML en PHP 5 (approche DOM). Avant de poster -> tutoriels DOM
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/12/2007, 18h18   #1
Membre éclairé
 
Homme
Développeur Web
Inscription : avril 2004
Messages : 319
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2004
Messages : 319
Points : 325
Points : 325
Par défaut [DOM] Retour à la ligne dans un nodeValue

Bonjour à tous.
J'ai un petit soucis bizarre que je n'arrive pas à élucider, pas très important mais qui m'intrigue beaucoup !

Alors voila j'importe un fichier XML, et je lis pour lui sous-tirer des informations
Voici mon code PhP :
Code php :
1
2
3
4
5
6
$dom = new DOMDocument();
$dom->load("./tmp/".$file);
 
$packages = $dom->getElementsByTagName("package");
foreach($packages as $package)
		package_create($package->getAttribute("package_id"),$package->nodeValue);
Ma fonction package_create permet d'enregistrer dans une base MySQL ce nouveau package avec ses 2 champs.

Mon bout XML :
Code xml :
1
2
3
4
5
6
7
8
9
10
11
<tv_packages>
<package package_id="1">
<package_name>Eco</package_name> 
</package>
<package package_id="4">
<package_name>Gratuit</package_name> 
</package>
<package package_id="35">
<package_name>Grand Ecran</package_name> 
</package>
</tv_packages>

Et je me suis aperçu en fait qu'il apparaissait dans mes champs MySQL, un retour à la ligne juste avant chaque nom de package. Comme s'il y avait un \n ou \r juste avant.
Donc c'est pas bien grave, mais je ne vois vraiment pas d'ou ca vient

Merci pour votre aide !
Guybrush113 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2007, 18h42   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Si vous prenez la valeur de l'élément package (au lieu de package_name ) c'est effectivement normal.

Autres solutions :
Vous pouvez essayer d'ajouter avant l'appel à load :
Code :
$dom->preserveWhiteSpace = FALSE;
Sinon avec les fonction [rl]?trim, ça doit marcher aussi non ?
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 14h21   #3
Membre éclairé
 
Homme
Développeur Web
Inscription : avril 2004
Messages : 319
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2004
Messages : 319
Points : 325
Points : 325
Désolé de ma réponse tardive j'étais passé à autre chose.
Alors oui en effet ce que je fais c'est pas vraiment top...J'ai pas assez réfléchit avant de poster, je m'en excuse !

Ca me donne ceci :
Code php :
1
2
3
4
5
6
 
foreach($packages as $package)
{
    $name = $package->getElementsByTagName("package_name");
    package_create($package->getAttribute("package_id"),$name->item(0)->nodeValue);
}

Par contre, pour ma culture, c'est quoi les fonctions [rl]?trim ?

Merci pour le coup de main !
Guybrush113 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 14h45   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
  • trim : suppression des caractères blancs (espaces, tabulations, sauts de ligne, ... - par défaut) en début et en fin de chaîne
  • rtrim : la même fonction mais qui ne supprime les blancs qu'en fin de chaîne
  • ltrim : même chose mais sur le début de la chaîne seulement
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h09.


 
 
 
 
Partenaires

Hébergement Web