Эта функция php читает файл xml, ищет узел и копирует его в узел.Если узел имеет только один элемент, код дублирует этот элемент и дважды записывает его в узел.Мне интересно, почему это происходит.
Вот файл PHP.
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
function backup_urls( $nodeid ) {
$dom = new DOMDocument();
$dom->load('communities.xml');
$dom->formatOutput = true;
$dom->preserveWhiteSpace = true;
// get document element
$xpath = new DOMXPath($dom);
$nodes = $xpath->query("//COMMUNITY[@ID='$nodeid']");
if ($nodes->length) {
$node = $nodes->item(0);
$xurls = $xpath->query("//COMMUNITY[@ID='$nodeid']/URLS");
if ($xurls->length) {
$xurle = $xpath->query("//COMMUNITY[@ID='$nodeid']/URLS_BACKUP");
echo "backup length: ".$xurle->length;
if ($xurle->length) $node->removeChild($xurle->item(0));
$xurlb = $dom->createElement("URLS_BACKUP");
$node->appendChild($xurlb);
$urldelete = $xurls->item(0);
$xurll = $urldelete->getElementsByTagName ("URL");
foreach($xurll as $url)
{
$urlid = $url->getAttribute('ID');
$xurl = $dom->createElement("URL");
$xurl->setAttribute("ID", $urlid);
$xurlb->appendChild($xurl);
$name = $url->getElementsByTagName("NAME")->item(0)->nodeValue;
$xuname = $dom->createElement("NAME");
$xunameText = $dom->createTextNode($name);
$xuname->appendChild($xunameText);
$xurl->appendChild($xuname);
$urllink = $url->getElementsByTagName("URLC")->item(0)->nodeValue;
$xulink = $dom->createElement("URLC");
$xulinkText = $dom->createTextNode($urllink);
$xulink->appendChild($xulinkText);
$xurl->appendChild($xulink);
echo "urlid: ".$urlid." name: ".$name." link: ".$urllink;
}
$node->removeChild($urldelete);
}
}
$dom->save('communities.xml');
}
echo backup_urls(trim($_REQUEST['nodeid']));
Вот файл XML, который php читает для записи резервных узлов.1008 * Спасибо.