jQueryを使用するとこれが可能ですが、QueryPathでどのように行うことができますか?QueryPathを使用してHTMLコメントを選択することはできますか?
Selecting HTML Comments with jQuery
ない場合は、誰もがコメントを選択することができますHTMLパーサを提案することができますか?
jQueryを使用するとこれが可能ですが、QueryPathでどのように行うことができますか?QueryPathを使用してHTMLコメントを選択することはできますか?
Selecting HTML Comments with jQuery
ない場合は、誰もがコメントを選択することができますHTMLパーサを提案することができますか?
QueryPathには、複数のアドオンメソッドを持つQPXML
という拡張子が付いています。これらのうちの1つは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;
}
}
}
を、それは一つの要素は持っているケースへのより良いアクセスを提供します:あなたは、すべて同じノード内のコメントの本当に洗練されたセットを持っている場合は
、あなたはこのような何かを行うことができますそれには多くのコメントがあります。
は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]);
感謝を!私は必要なときにQPメーリングリストの方法でこれを尋ねたばかりだったはずです。幸いにも回避策が見つかりました。 :) –
QPXMLを動作させるには、 '\ QueryPath :: enable( '\ QueryPath \ Extension \ QPXML');'を実行しなければなりませんでした。 –