公式ホームページ http://querypath.org/
QP API マニュアル http://api.querypath.org/docs/
QueryPath (QP) ライブラリは、PHP で jQuery と同様の効果を実装しており、それを使用することができますXML HTML も簡単に処理できます...とても強力です。 ! !
QueryPath チュートリアル (簡単な説明)
QueryPath はメソッド チェーンを利用して、DOM を操作するための簡潔なツール スイートを提供します
メソッド チェーンの基本原理は、各メソッドが追加のメソッドを使用できるオブジェクトを返すことです。私たちの場合、QueryPath オブジェクトは通常、それ自体を返します。
<p class="sycode"> $qp = qp(QueryPath :: HTML_STUB); // Generate a new QueryPath object.(创建一个 QP 对象) $qp2 = $qp -> find( ' body ' ); // Find the body tag.(找到 "body" 标签)// Now the surprising part:(请看下面让你惊奇的地方) if ( $qp === $qp2 ) { // This will always get printed.(它总是会这样输出) print " MATCH " ;} </p>
なぜ $qp は常に $qp2 と等しいのでしょうか?データを収集してから QueryPath オブジェクトを返します
これは難解に見えるかもしれませんが、この種のインターフェイスを使用すると、多くのメソッドを連鎖させることができます。 jQuery 連結メソッド)
<p class="sycode"> <pre class="sycode" name="code"> <p class="sycode"> qp(QueryPath :: HTML_STUB) -> find( ' body ' ) -> text( ' Hello World ' ) -> writeHTML(); </p>
この例では、4 つのメソッド呼び出しがあります: qp(QueryPath::HTML_STUB): 新しい QueryPath オブジェクトを作成し、それに HTML ドキュメントのスタブを提供します。これは、QueryPath を返します。 object . find('body'): これは、QueryPath ドキュメントを検索して 'body' という名前の要素を探します。 body 要素を参照すると、その要素への内部ポインタが保持され、QueryPath オブジェクト (body 要素がラップされています) が返されます。 text('Hello World'): この関数は、QueryPath でラップされた現在の要素を取得し、追加します。ご想像のとおり、このオブジェクトも QueryPath オブジェクトを返します。 writeHTML() 関数は、ドキュメント全体を出力します。 HTML をクライアントに送り返します。この関数が何を返すかは想像もつきません。 上記のチェーンの最後には、次のようなドキュメントが作成されます。
そうですね
その HTML のほとんどは QueryPath::HTML_STUB から来ています
すべての QueryPath 関数が QueryPath オブジェクトを返すわけではありません。一部のツールは他のデータを返す必要がありますが、これらの関数については付属のドキュメントに詳しく説明されています
では、QueryPath API をより詳細に実行するより大きな例を見てみましょう。例
この例では、QueryPath のさまざまなコア機能を示しますこの例では、いくつかの標準 QueryPath 関数 (そのほとんどは jQuery インターフェイスを実装しています) を使用して、新しい Web ページを最初から構築します
コードの各行。ここからの出力は下の別のブロックに示されています。
<p class="sycode"> <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" > < html xmlns ="http://www.w3.org/1999/xhtml" > < head > < meta http-equiv ="Content-Type" content ="text/html; charset=utf-8" ></ meta > < title > Untitled </ title > </ head > < body > Hello World </ body > </ html > </p>
上記のコードは次の HTML を生成します:
code
<p class="sycode"> <? php /* * * Using QueryPath. * * This file contains an example of how QueryPath can be used * to generate web pages. * @package QueryPath * @subpackage Examples * @author M Butcher <matt@aleph-null.tv> * @license LGPL The GNU Lesser GPL (LGPL) or an MIT-like license. */ // Require the QueryPath core. require_once ' QueryPath/QueryPath.php ' ; // Begin with an HTML stub document (XHTML, actually), and navigate to the title. qp(QueryPath :: HTML_STUB , ' title ' ) // Add some text to the title -> text( ' Example of QueryPath. ' ) // Now look for the <body> element -> find( ' :root body ' ) // Inside the body, add a title and paragraph. -> append( ' <h1>This is a test page</h1><p>Test text</p> ' ) // Now we select the paragraph we just created inside the body -> children( ' p ' ) // Add a 'class="some-class"' attribute to the paragraph -> attr( ' class ' , ' some-class ' ) // And add a style attribute, too, setting the background color. -> css( ' background-color ' , ' #eee ' ) // Now go back to the paragraph again -> parent() // Before the paragraph and the title, add an empty table. -> prepend( ' <table id="my-table"></table> ' ) // Now let's go to the table... -> find( ' #my-table ' ) // Add a couple of empty rows -> append( ' <tr></tr><tr></tr> ' ) // select the rows (both at once) -> children() // Add a CSS class to both rows -> addClass( ' table-row ' ) // Now just get the first row (at position 0) -> eq( 0 ) // Add a table header in the first row -> append( ' <th>This is the header</th> ' ) // Now go to the next row -> next () // Add some data to this row -> append( ' <td>This is the data</td> ' ) // Write it all out as HTML -> writeHTML(); ?> </p>
QueryPath の仕組み。ライブラリのコピーを入手して試してみてください。ソース コードとともに、QueryPath ライブラリのすべてのパブリック関数をカバーする素晴らしい HTML ファイルのバンドルが得られます (冗談ではありません)。
素敵なものもあります!早く掴んで~~!