4

这是之前的另一个问题,但我们不会谈论这个。我正在隔离第三方 HTML 文档中的多个部分。匹配一些时,我需要从结果中删除某些标签。我在 SO 上找到的代码是:

$name = $xpath->query("//div[@class='leftColBig']//h3")->item(0);
// remove <span>
foreach($xpath->query("//span", $name) as $node)
    $node->parentNode->removeChild($node);

这有一个不幸的副作用,不仅是从 $name 中删除子项,而且是整个 DOMDocument :( 我怎样才能将 removeChild 隔离到我使用查询找到的部分。

4

1 回答 1

4

代替:

$xpath->query("//span", $name)

做:

$xpath->query("span", $name)

//nodename匹配所有节点,无论其父节点是什么。当您的查询以 . 开头时,$contextnode 将被忽略//

于 2010-11-18T19:28:28.343 回答