这是以前的另外一个问题,但我们不会谈论这一点。我是一个第三方的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被忽略,当你开始查询与//

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top