您好我想用PHP从HTML文件中删除一行 像这样:
<div id="buttons">
<div id="buttonid_4"><a href="#">Button 4</a></div>
<div id="buttonid_3"><a href="#">Button 3</a></div>
<div id="buttonid_2"><a href="#">Button 2</a></div>
<div id="buttonid_1"><a href="#">Button 1</a></div>
</div>
所以,我想要删除buttonid_4,它的内容。 它会是这样的:
<div id="buttons">
<div id="buttonid_3"><a href="#">Button 3</a></div>
<div id="buttonid_2"><a href="#">Button 2</a></div>
<div id="buttonid_1"><a href="#">Button 1</a></div>
</div>
首先我认为这很容易,但我找不到答案:|
我试过了: &#34;简单&#34;
$dom = new DOMDocument('1.0', 'utf-8');
$dom->loadHTMLFile($The_Path_For_File);
$element = $dom->getElementById('buttonid_'. $Button_Id);
$element->parentNode->removeChild($element);
$dom->saveHTMLFile($The_Path_For_File);
我得到了
在非对象
上调用成员函数removeChild()
每当我尝试使用GetElementById时,我继续使用XPATH:
$xpath = new DOMXpath($dom);
$nodeList = $xpath->query('//div[@id="buttonid'.$Button_Id.'"]');
foreach($nodeList as $element){
$dom->$element->removeChild($element);
}
$dom->saveHTMLFile($The_Path_For_File);
我没有收到错误,记事本要求刷新文件,但没有变化 有谁知道如何制作这个?
答案 0 :(得分:0)
使用getElementById
需要文档类型声明(DTD)。
PHP Documentation
请注意您的HTML验证失败$dom->validate()
只需将<!DOCTYPE html>
添加到您的HTML中即可。
要使此功能起作用,您需要设置一些ID 具有DOMElement :: setIdAttribute的属性或定义了一个的DTD 属性为ID类型。在后一种情况下,您需要 使用DOMDocument :: validate 或。验证您的文档 使用此函数之前的DOMDocument :: $ validateOnParse。