我试图更新XML元素文本的基础上提交的形式。这是一个用户数据库和IM使用用户的密码作为一个参考,以更新他们的用户ID。密码都是唯一的,所以我认为这将是一个很容易的元素参考。然而,每当我试图编辑一个UID失败,并把我送到我的错误页面,我创建如果功能失败。我不知道我哪里出错了,任何帮助都是很好的。
- 更新UID函数**
function updateUID($pass, $file, $new)
{
$xml = new DOMDocument();
$xml->load($file);
$record = $xml->getElementsByTagName('UniqueLogin');
foreach ($record as $person) {
$password_id = $person->getElementsByTagName('Password')->item(0)->nodeValue;
//$person_name=$person->getElementsByTagName('name')->item(0)->nodeValue;
if ($password_id == $password) {
$id_matched = true;
$updated = $xml->createTextNode($new);
$person->parentNode->replaceChild($person, $updated);
break;
}
}
if ($id_matched == true) {
if ($xml->save($file)) {
return true;
}
}
}
- 调用函数的代码**
x一个一个一个一个x一个一个二个x
2条答案
按热度按时间odopli941#
我认为这个问题是由逻辑测试中未声明的变量
$password
以及如果出错函数永远不会返回替代值这一事实引起的。根据关于
XPath
的评论-也许以下内容可能会感兴趣。rsaldnfx2#
我仍然不清楚到底哪里出了问题,但是如果我理解正确的话,请尝试在代码中进行以下更改,看看是否有效: