【发布时间】:2011-02-24 08:14:07
【问题描述】:
我正在尝试从 xml 文件中删除具有特定 ID 的用户,但遇到以下错误:
参数 1 传递给 DOMNode::removeChild() 必须是 DOMNode 的实例,在 delUser.php
XML 文件:
<currentUsers>
<user id="101" firstName="Klashinkof" p2p="Yes" priority="Low"/>
<user id="102" firstName="John" p2p="Yes" priority="High"/>
</currentUsers>
代码:
<?php
$id=101; //Test
// SETUP $doc
$doc = new DomDocument("1.0");
$doc->preserveWhiteSpace = FALSE;
$doc->validateOnParse = true;
$doc->Load('currUsers.xml');
//REMOVE ID
$user= $doc->getElementByID($id);
$users= $doc->documentElement;
if ($oldPerson = $users->removeChild($user)) {
// worked
echo "DELETED user {$id}";
} else {
return "Couldn't remove $id listing";
}
$doc->save(curr.xml);
?>
【问题讨论】:
-
DOMDocument::getElementById-> 如果未找到元素,则返回 DOMElement 或 NULL。所以看起来$doc->getElementByID($id);无法通过 id 找到元素。