Php 从解析的HTML中操作并删除DOM元素
我对HTML和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>& possibly this too</td> <td>can you help?</td> </t
<tbody>
<tr>
<td>I'd like to find and remove this text</td>
<td>& 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);
}