2010-12-07 30 views
4

Cela peut être simple mais je n'ai trouvé aucun exemple sur le web. Je dois trouver un noeud en utilisant xpath et remplacer sa valeur.Remplacer la valeur de SimpleXMLElement

Ceci est une petite version du document xml:

<?xml version="1.0" encoding="utf-16" standalone="yes"?> 
<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"> 
    <w:body> 
    </w:p> 
     <w:r> 
      <w:t>John Doe</w:t> 
     </w:r> 
    </w:p> 
    </w:body> 
</w:document> 

Et voici mon code php:

<?php 

$xml = simplexml_load_file("doc1/word/document.xml"); 
$result = $xml->xpath("/w:document/w:body/w:p[1]/w:r[1]/w:t[1]"); 

// the following code doesn't work... 
$xml->$result = "George Dow"; 

echo $xml->asXML(); 

?> 

Fondamentalement, John Doe devrait être George Dow

Répondre

4

J'ai trouvé la Solution. Fondamentalement, depuis la fonction xpath renvoie un objet SimpleXMLElement un tableau, j'ai besoin d'y accéder comme un seul:

// the following code doesn't work... 
$xml->$result = "George Dow"; 

// but this does :D 
$result[0][0] = "George Dow"; 
// the following code doesn't work... 
$xml->$result = "George Dow"; 

// but this does :D 
$result[0][0] = "George Dow";