Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML
XML Forum d'entraide sur XML avec PHP. Exemples : SimpleXML, OpenXML... Avant de poster -> FAQ XML, Cours XML et Sources XML
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 31/03/2011, 09h13   #1
Invité de passage
 
Homme
Inscription : mars 2011
Messages : 1
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : mars 2011
Messages : 1
Points : 0
Points : 0
Par défaut Manipuler XML en PHP

Bonjour,

J'ai en problème pour manipuler un fichier XML en PHP. Je voudrais par exemple dans le fichier XML suivent:

<description>

<a1><teste></teste><a1>

</description>

pouvoir supprimer la balise "teste" et la remplacée par un texte. J'ai transformé ce fichier en simplexml puis à l'aide de requête Xpath sélectionner la balise "texte" mais il n'y a pas de fonction pour la surprime. Je me suis donc tourné vers la solution du DOMDocument. Mais je ne comprends pas trop comment il marche. Pourquoi il convertit le résulta d'une requête Xpath en DOMListe? Comment fait ton pour utiliser des fonctions comme creatAtribute après une requête Xpath?
couneille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 10h58   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 016
Points : 5 016
L'objet DOMNodeList est traversable.
Tu peux faire:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
$xml = <<< XML
<?xml version="1.0" ?>
<description>
<a1><teste></teste></a1>
</description>
XML;
 
$doc = new DOMDocument;
$doc->loadXML($xml);
 
$xpath = new DOMXPath($doc);
$node_list = $xpath->query('//teste');
foreach ($node_list as $node) {
  $new_node = $doc->createTextNode('TEST');
  $node->parentNode->replaceChild($new_node, $node);
}
 
var_dump($doc->saveXML());
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h44.


 
 
 
 
Partenaires

Hébergement Web