使用DOMXpath如何循环DOM并停在第一段文本?

时间:2014-01-01 22:50:00

标签: php xpath

我使用DOMXpath循环遍历DOM的节点,并在到达第一段文本时停止。

所以使用这种方法,我可以捕获并删除第一批换行符,但在hello world之后留下其余部分:

$html = '<br><br><br>Hello World<br><br><br>'

我不确定$ xpath查询是什么来查找纯文本但我对代码进行映像会是这样的:

$doc = new DOMDocument();
$doc->loadHTML($html);
showDOMNode($doc);
$i = 1;
$dom_xpath = new DOMXpath($doc);
foreach($nodes as $node) {
  do {
    $node->parentNode->removeChild($node); 
   } while ($i > 0);
  if($node == $xpath->query("/:TEXT")){
      $i = 0;
  }
}  

只是一段粗略的代码,但想象一下我想要的是什么,请有人为我填补空白。

1 个答案:

答案 0 :(得分:0)

$doc->loadHTML($html);
    $xpath = new DOMXPath($doc);
    foreach($xpath->query('//br[not(preceding::text())]') as $node) {
        $node->parentNode->removeChild($node);
    }
    return $doc->saveHTML();

@cHao男人!