我有一个名为processDeleteForm()的PHP函数,用于从名为structure.xml的xml文档中删除指定的节点.到目前为止我遇到的唯一问题是在processDeleteForm()中,它通过循环遍历父节点的每个子节点来搜索要删除的节点,并通过"name"属性匹配它,但是我没有能够为循环获取正确数量的子节点,因此它在到达正确的节点之前就会停止.相关代码:
function processDeleteForm($dir, $filename)
{
echo "Processing delete request.<br/>";
echo "Request to delete ".$filename." from ".$dir.".<br/>";
$xmlDoc = new DOMDocument();
$xmlDoc->load("structure.xml");
$node = dirDOMNodeWritable($dir, $xmlDoc);
$target;
echo "Working directory has ".count($node->childNodes)." child(ren).<br/>";
for($x = 0; $x < count($node->childNodes); $x++)
{
if($node->childNodes->item($x)->getAttribute("name") == $filename)
{
$target = $node->childNodes->item($x);
echo "Target found.<br/>";
}
else
{
echo "Searching for target...<br/>";
}
}
if($target->getAttribute("type") != "directory")
{
$fstored = "uploads/".$target->childNodes->item(0)->wholeText;
unlink($fstored);
}
$node->removeChild($target);
$file = fopen("structure.xml", "w");
fwrite($file, $xmlDoc->saveXML());
}
Run Code Online (Sandbox Code Playgroud)
structure.xml:
<?xml version="1.0" encoding="ISO-8859-1"?> …Run Code Online (Sandbox Code Playgroud)