【发布时间】:2013-11-05 13:10:38
【问题描述】:
我正在尝试使用 SimpleXmlElement 删除 XML 节点。
但运行此代码后,XML 文件没有任何变化。它应该可以工作,但 unset 不会对文件进行任何更改:
$xml = new SimpleXMLElement('goods.xml', NULL, TRUE);
$items = $xml->xpath('/items/item');
for ($i =0; $i < sizeof($items); $i++)
{
if ($items[$i]->qty == 0 and $items[$i]->qtyonhold == 0)
{
$index = $i;
}
}
$index = $index + 1;
var_dump($items[$index]);
unset($items[$index]);
$xml->asXML("goods.xml");
【问题讨论】:
-
为什么是
$index = $index + 1;,如果永远找不到条件怎么办?查看您的代码然后会发生什么,您的代码中已经存在逻辑缺陷,无论您对确切使用哪种方法有一些技术知识。首先修复逻辑缺陷,它们通常会造成更大的伤害。 -
您好,实际上这段代码只有在有匹配的 id 时才会被捕获。但是,是的,仍然应该检查。