我一直在这里寻找和谷歌,并找到各种代码,但没有一个工作。我假设这是因为它们都不符合我的确切情况。我有一个这样的xml结构:通过php删除xml节点和所有孩子
<employees>
<employee EmpID="">
<first_name></first_name>
<last_name></last_name>
<ssnum></ssnum>
<status></status>
<contact_info>
<office_phone></office_phone>
<email></email>
<cell_phone></cell_phone>
</contact_info>
<access_info level="user">
<username></username>
<password></password>
</access_info>
<department></department>
<date_started></date_started>
<years></years>
<position></position>
<salary></salary>
<e_increase></e_increase>
<e_raise></e_raise>
<photo></photo>
</employee>
</employees>
我有我想要删除的员工的EmpID存储在名为$ ID的变量中。我想彻底删除该员工。我已经尝试了诸如:
foreach ($doc->getElementsByTagName('employee') as $employee) {
if($employee->getAttribute('EmpID') === $ID) {
foreach ($employee as $node) {
$node->parentNode->removeChild($node);
}
}
}
和其他循环试图让同样的事情,因为在这些职位:PHP XML remove element and all children by name和Remove all children from a XML Node PHP DOM,但我一直没能得到这个能够成功。
任何帮助,将不胜感激,谢谢。
试过了,什么都没有发生...... – sharf 2013-04-22 17:52:05
@sharf:在这里工作的很好。修改的XML应该在'$ dom-> saveXML();'中可用,而不是您的原始变量。 – 2013-04-22 17:53:12
我试着保存它,但更改没有保存。我正在使用$ dom-> save();而不是saveXML。我试图改变它,现在我得到这个错误:可捕获致命错误:传递给DOMDocument :: saveXML()的参数1必须是DOMNode的实例,字符串给定 – sharf 2013-04-22 17:58:02