2010-06-28 10 views
4

J'ai un fichier XML avec des noeuds CDATA. Je veux changer le texte à l'intérieur du noeud CDATA (en le gardant comme noeud CDATA). Donc, je suppose que je dois d'abord lire le noeud CDATA, puis le réécrire. Mais, je ne suis pas sûr de savoir comment faire cela en PHP. J'ai été capable de créer un nouveau noeud CDATA mais comment puis-je éditer un noeud CDATA? Y a-t-il un moyen direct de faire cela?Nœud CDATA d'édition XML PHP

Merci.

+0

Quelle bibliothèque utilisez-vous (à savoir comment allez-vous manipulaient le fichier XML)? – Artefacto

+0

PHP/XML - DOMDocument/SimpleXML – Blueboye

+0

Il y a un problème avec simplexml, jetez un oeil à ce rapport de bug: http://bugs.php.net/bug.php?id=42421 – jordanstephens

Répondre

1

je fixe sur mon propre:

$nodes = $xml->getElementsByTagName('tagname'); 

$oldTitleNode = null; 
$newTitleNode = null; 

//Iterate for each <title> tag 
foreach ($nodes as $node) {  
    if ($node->parentNode->getAttribute('name')== $tag_name_value){ 

     $oldTitleNode = $node; 

     //Create new CDATA Node 
     $newTitleNode=$node->parentNode->appendChild($xml->createElement('tagname')); 
     $cdata=$xml->createCDATASection($update_title); 
     $newTitleNode->appendChild($cdata); 

     //Replace the Existing CDATA Node 
    $node->parentNode->replaceChild($newTitleNode, $oldTitleNode); 
    } 
}