我试图通过“id”属性删除“druzenje”元素。我知道要做到这一点,我必须从该元素中删除所有子节点。
<?xml version="1.0" encoding="utf-8"?>
<druzenja>
<druzenje id="1">
<podaci attribute="some-data"/>
</druzenje>
<druzenje id="3">
<podaci attribute="some-data"/>
</druzenje>
</druzenja>
要删除的代码是这样的...
$druzenja = $this->dom->getElementsByTagName('druzenje');
foreach($druzenja as $node) {
if($node->getAttribute('id') == $id) {
$podaciNodeList = $node->getElementsByTagName('podaci');
foreach($podaciNodeList AS $podaciNode) {
$node->removeChild($podaciNode);
}
$this->dom->documentElement->removeChild($node);
return true;
}
}
我认为通过“id”属性删除节点可能是糟糕的设计,但我在此基础上编写了大量代码,到目前为止,还没有出现任何问题。我还有一个代码可以删除“podaci”元素,该元素以类似的方式工作,并且没有任何问题,但在这里它失败了。即使removeChild()返回DomElement对象,代码也不会删除“podaci”和“druzenje”元素,这意味着它成功了,但事实并非如此。
有任何想法吗?
$element = $this->dom->getElementById($id);
$element->parentNode->removeChild($element);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)