Die QueryPath (QP)-Bibliothek implementiert ähnliche Effekte wie jQuery in PHP. Sie kann auch zur einfachen Verarbeitung von XML-HTML verwendet werden ... Sie ist so leistungsstark! ! !
Ein QueryPath-Tutorial (eine einfache Erklärung)
QueryPath nutzt Methodenverkettung, um eine prägnante Suite von Tools zum Bearbeiten eines DOM bereitzustellen
Das Grundprinzip der Methodenverkettung besteht darin, dass jede Methode eine zurückgibt Objekt, auf dem zusätzliche Methoden aufgerufen werden können.
Sehen wir uns zur Veranschaulichung ein Beispiel an:
$qp = qp(QueryPath::HTML_STUB); ein neues QueryPath-Objekt. (Erstelle ein QP-Objekt)
$qp2 = $qp->find('body'); // Finde das Body-Tag. (Finde das „Body“-Tag)
// Jetzt Der überraschende Teil: (Bitte sehen Sie unten, was Sie überrascht)
if ($qp === $qp2) {
// Dies wird immer gedruckt (Es wird immer so ausgegeben)
print "MATCH";
}
Warum entspricht $qp immer $qp2? hat einen sehr praktischen Grundgedanken. Mit dieser Art von Schnittstelle können wir viele Methoden miteinander verketten:
(Sie können Methoden wie bei der Verwendung von jQuery verketten)
qp(QueryPath::HTML_STUB)->find(' body ')->text('Hello World')->writeHTML();
In diesem Beispiel haben wir vier Methodenaufrufe:
qp(QueryPath::HTML_STUB): Erstellen Sie ein neues QueryPath-Objekt und stellen Sie es bereit es mit einem Stub eines HTML-Dokuments. Dies gibt das QueryPath-Objekt zurück und sucht nach einem Element mit dem Namen „body“. ;
Teil des HTML-Dokuments, wenn es das Body-Element findet, behält es einen internen Zeiger auf dieses Element bei und gibt das QueryPath-Objekt zurück (das jetzt das Body-Element umschließt). „Hello World“): Diese Funktion nimmt die aktuellen Elemente, die von QueryPath umschlossen sind, und fügt den Text „Hello World“ hinzu. Wie Sie wahrscheinlich erraten haben, gibt sie auch ein QueryPath-Objekt zurück.
writeHTML(): Die Funktion writeHTML() wird verwendet, um den HTML-Code an den Client zurückzusenden. Okay, Sie haben es erraten >Am Ende der obigen Kette hätten wir also ein Dokument erstellt, das etwa so aussieht:
Kopieren Sie den Code wie folgt:
org/1999/xhtml"> >
/head>
Der größte Teil dieses HTML stammt aus dem QueryPath::HTML_STUB Text innerhalb der
复制代码 代码如下: Testtext Der obige Code erzeugt den folgenden HTML-Code: 复制代码 代码如下: Testtext Jetzt sollten Sie eine Vorstellung davon haben, wie QueryPath funktioniert. Schnappen Sie sich ein Exemplar der Bibliothek und probieren Sie es aus! Zusammen mit dem Quellcode erhalten Sie ein schönes Paket an HTML-Dateien, die jede einzelne öffentliche Funktion in der QueryPath-Bibliothek abdecken (kein Scherz). Da gibt es auch noch mehr Beispiele. 感谢您的阅读,更多相关文章请关注PHP中文网(www.php.cn )!
/**
* Mit QueryPath.
*
* Diese Datei enthält ein Beispiel dafür, wie QueryPath verwendet werden kann
* zum Generieren von Webseiten.
* @package QueryPath
* @subpackage Examples
* @author M Butcher
* @license LGPL Die GNU Lesser GPL (LGPL) oder eine MIT-ähnliche Lizenz.
*/
// Erfordert den QueryPath-Kern.
require_once 'QueryPath/QueryPath.php';
// Beginnen Sie mit einem HTML-Stub-Dokument (eigentlich XHTML) und navigieren Sie zum Titel.
qp(QueryPath::HTML_STUB, 'title')
// Fügen Sie dem Titel etwas Text hinzu
->text('Example of QueryPath.')
// Suchen Sie nun nach dem < ;Körper> element
->find(':root body')
// Fügen Sie im Textkörper einen Titel und einen Absatz hinzu.
->append('Dies ist eine Testseite
// Jetzt wählen wir den Absatz aus, den wir gerade im Hauptteil erstellt haben
->children('p')
// Dem Absatz ein 'class="some-class"'-Attribut hinzufügen
->attr('class', 'some-class')
// Und fügen Sie auch ein Stilattribut hinzu, um die Hintergrundfarbe festzulegen.
->css('background-color', '#eee')
// Gehen Sie nun erneut zum Absatz zurück
->parent()
// Vor dem Absatz und dem Titel, fügen Sie eine leere Tabelle hinzu.
->prepend('')
// Jetzt gehen wir zur Tabelle...
->find( '#my-table')
// Ein paar leere Zeilen hinzufügen
->append('')
// die Zeilen auswählen (beide gleichzeitig)
->children()
// Eine CSS-Klasse zu beiden Zeilen hinzufügen
->addClass('table-row')
// Holen Sie sich jetzt einfach die erste Zeile (an Position 0)
->eq(0)
// Fügen Sie einen Tabellenkopf in der ersten Zeile hinzu
->append('Das ist die header ')
// Gehen Sie nun zur nächsten Zeile
->next()
// Fügen Sie dieser Zeile einige Daten hinzu
->append('')
// Alles als HTML schreiben
->writeHTML();
?>
Dies ist die Kopfzeile Dies sind die Daten Dies ist eine Testseite
不错的东东!赶紧 Grab 它吧~~!