|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre du Club
![]() Inscription : octobre 2006 Messages : 138 ![]() |
Bonjour,
j'utilise simpleXML et je souhaite ajouter un enfant à un noeud, par exemple <p> </p>, à mon flux: Code :
Code :
Code :
Merci !
__________________
C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison ! (Pierre Desproges) |
||||||
|
|
00
|
|
|
#2 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
SimpleXML n'offre pas ces manipulations, en revanche avec DOM c'est tout à fait possible.
|
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : octobre 2006 Messages : 138 ![]() |
Merci pour ta réponse Julp,
ce qui signifie pour moi, que si je veux continuer d'utiliser simplexml il faut que je reconstruise la chaîne xml dans sa totalité et cela pour conserver mon ordre, ou comment faire du compliqué avec du simple, si je comprends bien.
__________________
C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison ! (Pierre Desproges) |
|
|
00
|
|
|
#4 | |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Citation:
|
|
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : octobre 2006 Messages : 138 ![]() |
Une fois de plus merci pour cette réponse qui par ses fonctions répond à ma question.
Actuellement je cherche quelle est la manière la plus simple et la plus pratique de parser et modifier une chaîne de caratères qui est au format XML. Cette chaîne est contenue dans une variable PHP et possède une structure très simple. Elle est créée via une chaîne existante, en d'autre terme mon script PHP est un intermédiaire entre deux programmes qui communiquent en XML. J'ai découvert simpleXML qui est nativement inclus dans PHP5 et je dois dire très agréable à utiliser. Ma contrainte est de modifier la chaîne XML en ajoutant un noeud à une place strictement définie ... Je crois clairement maintenant qu'il faut que je m'oriente vers DOM étant donné la fonctionnalité dont j'ai besoin (i.e. insérer un noeud à une place particulière). Reste à savoir s'il est plus intéressant de faire la bascule entre DOM et simpleXML ou d'utiliser uniquement DOM ?
__________________
C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison ! (Pierre Desproges) |
|
|
00
|
|
|
#6 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Il est clair que l'interface SimpleXML est très agréable à utiliser mais on en découvre les limites dès qu'il s'agit de modifier l'arbre.
DOM d'après votre description vous suffit. SimpleXML par rapport à DOM facilite l'accès aux données (quand on connaît la structure et qu'on utilise pas de namespace). Si les performances vous importent peu et pour des raisons pratiques, vous pouvez tout à fait utiliser ces procédés pour passer de l'une à l'autre mais ce que vous pouvez faire avec SimpleXML peut être fait avec DOM. Eventuellement, selon les modifications que vous souhaitez apporter, vous pouvez envisager les expressions régulières (PCRE) si ces modifications restent simples (ça a le mérite d'être portable PHP 4/5 mais ces fonctions traitent du texte : vous n'aurez pas de validation, ...). |
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : octobre 2006 Messages : 171 ![]() |
Tu peux aussi mettre des données dans un tableaux et utiliser la fonction array_filter ou des fonctions dans ce genre
Mais bon ça fera un petit peu de code en plus .. |
|
|
00
|
|
|
#8 | |
|
Invité régulier
![]() Étudiant Inscription : mai 2008 Messages : 10 ![]() |
Citation:
Je cherche a faire la même chose : placer le nouveau noeud créé par appendChild en 1ere position mais je ne trouve nul part la solution !!julp : tu dis que c'est facile avec DOM? Comment ? Merci de m'aider, a bientôt. |
|
|
|
00
|
|
|
#9 | ||
|
Membre du Club
![]() Inscription : octobre 2006 Messages : 138 ![]() |
Bonjour,
voilà une petite classe que j'ai retrouvé par hasard, elle est très loin d'être parfaite et demande à être remaniée, mais elle contient les éléments qui te serviront Code :
__________________
C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison ! (Pierre Desproges) |
||
|
|
00
|
|
|
#10 | ||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Citation:
Citation:
|
||
|
|
00
|
|
|
#11 | ||
|
Invité régulier
![]() Étudiant Inscription : mai 2008 Messages : 10 ![]() |
Merci de répondre si rapidement !!
pour reprendre l'exemple de nillak, il faut ajouter le noeud "p" dans la racine. Avec un appendChild, c'est simple : Citation:
si je remplace "appendChild" par "insertBefore" il se passe la même chose : mon noeud est ajouté a la fin (trop fou : il n'y a aucune erreur !! j'ai donc regardé sur php.net : http://www.php.net/manual/fr/functio...ert-before.php et là, j'ai essayé tout et n'importe quoi. Il faut mettre a priori 2 paramètres. Mais j'arrive toujours a cette erreur : Citation:
|
||
|
|
00
|
|
|
#12 | ||
|
Expert Confirmé
![]() Inscription : mars 2005 Messages : 2 827 ![]() |
Essaie ça :
Code :
__________________
Un problème exposé clairement est déjà à moitié résolu Keep It Smart and Simple |
||
|
|
00
|
|
|
#13 | |||
|
Invité régulier
![]() Étudiant Inscription : mai 2008 Messages : 10 ![]() |
Citation:
![]() Merci beaucoup ! C'était bien ça qu'il fallait faire !! @ bientôt!! et merci encore |
|||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com