Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从解析的HTML中操作并删除DOM元素_Php_Html_Dom - Fatal编程技术网

Php 从解析的HTML中操作并删除DOM元素

Php 从解析的HTML中操作并删除DOM元素,php,html,dom,Php,Html,Dom,我对HTML和PHP都是新手。我试图从解析的HTML字符串中删除多个DOM元素 例如: <tbody> <tr> <td>I'd like to find and remove this text</td> <td>&amp; possibly this too</td> <td>can you help?</td> </t

我对HTML和PHP都是新手。我试图从解析的HTML字符串中删除多个DOM元素

例如:

<tbody>
    <tr>
        <td>I'd like to find and remove this text</td>
        <td>&amp; possibly this too</td>
        <td>can you help?</td>
    </tr>
 </tbody>

我想查找并删除此文本
&;可能也是这样
你能帮忙吗?

提前谢谢

DOMDocument
更适合处理DOM操作(
SimpleXML
只适合解析):


非常简单,若我要在PHP中从一个字符串中删除很多东西,我会创建一个要删除的部分数组,遍历它们,然后从大字符串中一次删除一个


有关str_replace的更多信息,请参见

您能否在问题中包含更多信息,例如html来自何处、它是字符串吗、您在用它做什么。等等,这只是一个例子,我仍在学习语言如果其余的代码基于简单的html dom,是否可以在其中使用DOMdocument代码?@user1685565;甚至还有一些函数可以将
SimpleXML
对象转换为
DOMDocument
,然后再转换回来。这种解决方案非常不灵活,要求您提前知道要删除的所有字符串,并且可能会删除HTML中非文本节点的部分。这是事实,但它并不是真正的复制粘贴解决方案。要删除的内容数组只是如何构造它的一个示例,您可以从任何地方加载这些内容。但这并不是一个完美的实现方式,但问题是如何用PHP删除字符串的一部分。
$dom = new DOMDocument;
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$textNodes = $xpath->query('//text()');
foreach ($textNodes as $node) {
   $node->parentNode->removeChild($node);
}
$html = "Loads of html blah blah blah blah......";

$array = array(
        "Remove me",
        "and me",
        "remove me too"
        );

foreach($array as $string){
    str_replace($string, '', $html);
}