CSSセレクターを使用してXHTMLドキュメントをクエリできるPHPクラス/ライブラリはありますか?何らかの方法でCSSセレクターを使用できる場合は、非常に簡単にアクセスできるデータのページをスクレイプする必要があります( jQueryは私を台無しにしました!)何かアイデアはありますか?
さらにグーグルした後(最初の結果はあまり役に立ちませんでした)、他のいくつかと一緒に、実際にはこれのためのZendFrameworkライブラリがあるようです:
XPathは、XML(およびXHTML)ノードにアクセスするためのかなり標準的な方法であり、CSSよりもはるかに高い精度を提供します。
素晴らしいものはsymfony2のコンポーネントです CssSelector\Parserはじめに 。 CSSセレクターをXPath式に変換します。見てください=)
最終的に PHP Query Lite を使用しました。これは非常にシンプルで、必要なものがすべて揃っています。
ドキュメントの解析には [〜#〜] dom [〜#〜] を使用します。タグ名(この例では「div」)がわかっている場合、これで問題を簡単に解決できます。
$doc = new DOMDocument();
$doc->loadHTML($html);
$elements = $doc->getElementsByTagName("div");
foreach ($elements as $e){
if ($e->getAttribute("class")!="someclass") continue;
//its a div.classname
}
DOMでドキュメントのすべての要素を一度に取得できるかどうかはわかりません...ツリートラバーサルを実行する必要がある場合があります。
私はMootoolsCSSセレクターエンジンに基づいて私のものを書きました http://selectors.svn.exyks.org/ 。 simplexml拡張機能に依存しています(したがって、読み取り専用です)