正确使用删除DOM文档和DOMXPath在PHP中的子元素
-
26-09-2019 - |
题
这是以前的另外一个问题,但我们不会谈论这一点。我是一个第三方的HTML文档中分离出若干款。当匹配一些,我需要从结果中删除某些标签。我发现这个SO上的代码是:
$name = $xpath->query("//div[@class='leftColBig']//h3")->item(0);
// remove <span>
foreach($xpath->query("//span", $name) as $node)
$node->parentNode->removeChild($node);
这已经不仅仅是从$名称中删除了孩子的不幸的副作用,而是整个DOM文档:(我怎样才能在removeChild之隔离只是我发现使用查询的部分。
解决方案
代替:
$xpath->query("//span", $name)
务必:
$xpath->query("span", $name)
//nodename
所有节点匹配,无论他们的父母是什么。 $ contextnode被忽略,当你开始查询与//
。
不隶属于 StackOverflow