2010-07-29 5 views
2

comment puis-je vérifier dans xml [avec php dom] que si un élément particulier existe, il ne devrait pas le répéter. par exemple, si j'ai un élément 'activité', il doit vérifier le fichier xml si cet élément existe, et si c'est le cas, il ne le créera pas à nouveau. En d'autres termes, je voudrais créer l'élément 'activité' une seule fois au début, mais les autres éléments peuvent être récurrents.si l'élément xml existe, quittez ou ignorez

c'est le code php:

<?php 
    header("Location: index.php"); 

    $xmldoc = new DOMDocument(); 
    if(file_exists('sample.xml')){ 
    $xmldoc->load('sample.xml'); 
    } else { 
    $xmldoc->loadXML('<root/>'); 
    } 
    $newAct = $_POST['activity']; 
    $newTime = $_POST['time']; 

    $root = $xmldoc->firstChild; 

    $newElement = $xmldoc->createElement('activity'); 
    $root->appendChild($newElement); 

    $newText = $xmldoc->createTextNode($newAct); 
    $newElement->appendChild($newText); 

    $newElementE = $xmldoc->createElement('time'); 
    $root->appendChild($newElementE); 

    $newTextE = $xmldoc->createTextNode($newTime); 
    $newElementE->appendChild($newTextE); 

    $xml->formatOutput = true; 
    $xmldoc->save('sample.xml'); 


?> 
+2

Vous devez mettre cet en-tête "Emplacement" à la fin de votre script. – enobrev

+0

merci de corriger. – input

Répondre

13
if ($xmldoc->getElementsByTagName("activity")->length == 0) { 
    $newElement = $xmldoc->createElement('activity'); 
    $root->appendChild($newElement); 
} 
Questions connexes