если элемент xml существует, выйдите или пропустите - PullRequest
2 голосов
/ 29 июля 2010

как мне проверить в xml [с php dom], что если определенный элемент существует, он не должен повторяться. например, если у меня есть элемент «активность», он должен проверить по файлу xml, существует ли этот элемент, и если он есть, он не создаст его снова.

Другими словами, я хотел бы создать элемент «активность» только один раз в начале, но другие элементы могут повторяться.

это код 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');


?>

1 Ответ

14 голосов
/ 29 июля 2010
if ($xmldoc->getElementsByTagName("activity")->length == 0) {
    $newElement = $xmldoc->createElement('activity'); 
    $root->appendChild($newElement);
}
...