小编Eri*_*ric的帖子

为什么count(DOMNode-> childNodes)返回的子项数不正确?(PHP和XML)

我有一个名为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)

php xml dom count

3
推荐指数
1
解决办法
5525
查看次数

标签 统计

count ×1

dom ×1

php ×1

xml ×1