2011-08-12 4 views

답변

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; 
     } 
    } 
} 

을하지만, 하나 개의 요소는이 경우에 더 나은 액세스를 제공합니다 : 당신이 모두 동일한 노드에서 코멘트 정말 정교한 세트가있는 경우

, 당신은 이런 식으로 뭔가를 할 수 그것에 대한 많은 의견.

+0

감사합니다! 나는 그것을 필요로 할 때 QP 메일 링리스트 방식으로 요청해야만했다. 운좋게도 해결 방법을 찾았다. :) –

+0

QPXML을 작동 시키려면'\ QueryPath :: enable ('\ QueryPath \ Extension \ QPXML');'을 수행해야했습니다. –

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]); 
관련 문제