IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

APIs XML Discussion :

[DOM]Modifier un attribut


Sujet :

APIs XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Par défaut [DOM]Modifier un attribut
    Bonjour,

    J'ai ce fichier xml ci dessous et j'aimerais pourvoir modifier l'attribut de ma balise album donc changer la valeur de nom="name" par nom="Best" par exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <music>
      <album nom="The album" pochette="Image.jpg">
        <titre nom="name">
          <description>meilleur album</description>
        </titre > 
      </album>  
      <album nom="Moi" pochette="Image2.jpg">  
        <titre nom="aaaa">  
          <description>Le plus mauvais</description>  
        </titre >  
        <titre nom="bbbbbb">  
          <description>Coooll</description>  
        </titre>  
      </album> 
    </music>
    J'ai ce bout de code qui me permet de changer juste un noeud mais j'arrive pas l'adapter pour mon probléme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $doc = new DomDocument; 
    $doc->appendChild($doc->createElement('description',$description));   
    $dom = new DomDocument();
    $dom->load(fichier.xml);
    $xpath = new DOMXpath($dom);
    $nodelist = $xpath->query('//album/photo[@titre ="bbbbbb"]');
    $oldnode = $nodelist->item(0)->getElementsByTagName('description')->item(0);
    $newnode = $dom->importNode($doc->documentElement, true);  
    $oldnode->parentNode->replaceChild($newnode, $oldnode);  
    $dom->save(fichier.xml);
    Merci beaucoup de votre aide.

  2. #2
    Membre éclairé Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Par défaut
    J'avais oublié de mettre un attribut qui me permet de savoir sur quelle noeud travailler donc avec l'attribut pochette ca doit pouvoir marché pour changer l'attribut nom mais je sais pas comment.

    Merci a vous.

  3. #3
    Membre éclairé Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Par défaut
    N'ayant pas de réponse j'aimerais juste savoir si ce que je veux faire est possible ou non ? Car ca va faire 3 jours que j'essai et sans succes merci a vous.

  4. #4
    Membre émérite
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Par défaut
    On va essayer de t'aider
    L'objectif est d'obtenir un fichier xml dans lequel l'attribut nom name" devient nom="Best"
    Peux tu utiliser pour faire cette transformation xslt?
    si oui on doit pouvoir faire quelques chose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:output 
      		encoding="ISO-8859-15"
      		method="xml"
      		indent="yes" />
     
    	<xsl:template match="node() | @*">
    		<xsl:copy>
    			<xsl:apply-templates select="@* | node()"/>
    		</xsl:copy>
    	</xsl:template>
     
    	<xsl:template match="@nom='name'">
                     <!-- là tu fais ta modif -->>
                        <xsl:attribute name = "nom" >Best</xsl:attribute> 
    	</xsl:template>
    </xsl:stylesheet>

  5. #5
    Membre éclairé Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Par défaut
    En faite je connais pas du tous XLT, je connais plus dom et simpleXML c'est pour cela mais si c'est plus simple avec XLT pourquoi pas même si j'aurais bien voulu trouvé avec DOM.

    Merci a toi

  6. #6
    Membre éclairé Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Par défaut
    Merci a vous j'ai fini par trouver comment résoudre mon probléme mais j'aurais une question subsidiaires a vous pauser.
    Pourquoi quand j'utilise un requete simpleXML pour lire mon fichier XML et qu'il voit des caractéres accentué il me renvoie ca a la place du caractére â£. Sachant que jai essayé avec UTF-8 et ISO-8859-1 et aussi utf8_decode() pour la création des balises via DOM.

    Merci de votre aide.

Discussions similaires

  1. [DOM] Modifier l'attribut "name" avec IE
    Par tom42 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 24/09/2007, 18h05
  2. [DOM] DOM - modifier attributs balise IMG
    Par on dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 27/08/2007, 17h15
  3. modifier un attribut !
    Par stitch dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 18/04/2006, 14h32
  4. comment modifier les attributs d'un fichier?
    Par kamal101 dans le forum C++
    Réponses: 1
    Dernier message: 18/03/2005, 14h16
  5. [VBA-E]modifier les attributs d'un commentaire dans une cellule
    Par Olivier vb dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/03/2004, 10h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo