1

我看到使用 jQuery 可以做到这一点,但是如何在 QueryPath 中完成呢?

使用 jQuery 选择 HTML 注释

如果没有,任何人都可以建议一个可以选择评论的 HTML 解析器吗?

4

2 回答 2

2

QueryPath 带有一个名为的扩展QPXML,它有几个附加方法。其中之一是comment()

要使用它,只需将其包含在您的脚本中:

include 'QueryPath/QueryPath.php';
include 'QueryPath/Extensions/QPXML.php';

htmlqp($html, $selector)->comment();

这将检索附加到当前选定节点的第一个评论。

如果您在同一个节点中有一组非常复杂的注释,您可以执行以下操作:

$nodes = $qp->get();
foreach ($nodes as $node) {
   foreach ($node->childNodes as $child) {
      if ($child->nodeType == XML_COMMENT_NODE) {
         // $child is a comment.
         print $child->textContent;
      }
   }
}

这有点难看,但它可以更好地访问一个元素中有很多评论的情况。

于 2012-05-23T01:25:34.437 回答
0

通过 querypath 获取 HTML 页面的所有评论:

    function  getAllComments($node) {
        if ($node->hasChildNodes()) {
            foreach ($node->childNodes as $child) {
                $this->getAllComments($child);
                if ($child->nodeType == XML_COMMENT_NODE) {
                    echo  $child->textContent;
                }
            }

        }
    }

    $html = $qp->get() ;
    getAllComments($html[0]);
于 2015-05-21T11:57:36.527 回答