Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Crawler: So analysieren Sie XML-Dokumente mit XPath

PHP-Crawler: So analysieren Sie XML-Dokumente mit XPath

王林
王林Original
2023-06-13 15:16:051277Durchsuche

Im Internetzeitalter sind Daten ein sehr wichtiges Gut. Die Methode zum Abrufen von Daten aus dem Internet sind Crawler. Mit Crawler wird simuliert, dass echte Benutzer die Website besuchen, und die Daten auf der Webseite automatisch durch das Programm gecrawlt werden. Der PHP-Crawler ist ein sehr wichtiger Crawler, der Daten von verschiedenen Websites crawlen und uns durch Datenanalyse, -verarbeitung und -mining eine Fülle von Informationen und Ressourcen liefern kann. In PHP-Crawlern ist die Verwendung von XPath zum Parsen von XML-Dokumenten eine sehr wichtige Technologie. In diesem Artikel wird ausführlich vorgestellt, was XPath ist, welche Syntax XPath hat und wie XPath auf PHP-Crawler angewendet wird.

1. Was ist XPath?

XPath ist eine Sprache, die zum Suchen von Informationen im XML-Dokumentformat verwendet wird. XPath kann Pfadausdrücke verwenden, um Knoten oder eine Gruppe von Knoten in einem XML-Dokument auszuwählen. XPath ist die Abkürzung für XML Path Language. XPath lokalisiert bestimmte Daten im Dokument, indem es bestimmte Elemente im XML-Dokument findet und Pfadausdrücke verwendet, um die Struktur des Dokuments zu erfassen.

2. XPath-Syntax

Die grundlegende Syntax von XPath umfasst Pfadausdrücke, Knoten und Prädikate (Prädikate), die im Folgenden ausführlich vorgestellt werden.

  1. Pfadausdruck

Pfadausdruck ist die Kernsyntax von XPath. Es handelt sich um eine Zeichenfolge, die mit einem Schrägstrichsymbol „/“ oder einem doppelten Schrägstrichsymbol „//“ beginnt und zum Auffinden des Dokuments verwendet wird auf einen Knoten oder eine Gruppe von Knoten zugegriffen wird. Der folgende Pfadausdruck wählt beispielsweise alle Buchelemente der obersten Ebene im Dokument aus.

/bookstore/book

  1. Knoten

In XPath können Knoten als Elemente, Attribute, Text, Namespaces, Verarbeitungsanweisungen usw. in XML-Dokumenten definiert werden. Pfadausdrücke können das Schrägstrichsymbol verwenden, um Knoten in einem XML-Dokument nach unten zu navigieren. Beispielsweise stellt „/“ den Stammknoten dar, „bookstore“ stellt den Knoten der ersten Ebene unter dem Stammknoten des XML-Dokuments dar und „book“ stellt alle Knoten mit dem Namen „book“ auf der nächsten Ebene dar.

  1. Prädikate

Das Prädikat von XPath ist eine bedingte Anweisung, die Knoten herausfiltern kann, die die Bedingungen erfüllen. Der Ausdruck des Prädikats wird durch eckige Klammern „[]“ dargestellt. Das Prädikat im folgenden Beispiel lautet beispielsweise [@category='WEB'], was bedeutet, dass der Buchknoten ausgewählt wird, dessen Kategorieattributwert 'WEB' ist.

/bookstore/book[@category='WEB']

3. Wie XPath auf PHP-Crawler angewendet wird

In PHP-Crawlern können wir die DOMDocument-Klasse und die DOMXPath-Klasse verwenden, um XML-Eingabedokumente zu verarbeiten. Unter diesen wird die DOMDocument-Klasse zum Parsen von XML-Dokumenten verwendet, und die DOMXPath-Klasse ist eine API (Anwendungsprogrammschnittstelle) zum Auswählen von Knoten aus DOMDocument-Objekten basierend auf XPath-Ausdrücken.

Fügen Sie den folgenden Code in die PHP-Datei ein, um XPath-Parsing von XML-Dokumenten zu implementieren:

$url = 'http://example.com/data.xml'; // XML 文档路径
$xml = file_get_contents ($url); //读取 XML 文件
$doc = new DOMDocument(); 
$doc->loadXML($xml); //载入 XML 文件
 
$xpath = new DOMXPath($doc); 
$query = "//bookstore/book[@category='WEB']"; //XPath 表达式
 
$books = $xpath->query($query);
 
foreach ($books as $book){ 
    echo $book->getAttribute("title") . "
"; //打印符合条件的 book 节点 title 属性
}

Die Funktion des obigen Codes:

  1. XML-Dateien lesen und laden.
  2. Verwenden Sie die DOMXPath-Klasse, um XPath-Ausdrücke aufzurufen.
  3. Verwenden Sie die Methode query(), um eine Liste von Knotenobjekten zurückzugeben. Diese Liste enthält alle Buchknoten, die die Bedingungen erfüllen.
  4. Verwenden Sie eine foreach-Schleife, um das Titelattribut des Buchknotens zu drucken, der die Bedingungen erfüllt.

Im obigen Code bedeutet „//bookstore/book[@category='WEB']“ die Auswahl aller Knoten mit dem Namen „book“, bei denen der Wert des Kategorieattributs gleich „WEB“ ist.

4. Zusammenfassung

Die Einfachheit und Flexibilität der XPath-Syntax bietet viel Komfort für PHP-Crawler. Die Kombination aus XPath-Syntax und PHP-Crawler löst das Problem der Beschaffung von Internetdaten. Es ist zu beachten, dass Sie bei der Verwendung von XPath zum Parsen von XML-Dokumenten die richtige Syntax basierend auf den tatsächlichen Anforderungen auswählen müssen, um genauere Informationen zu erhalten.

Das obige ist der detaillierte Inhalt vonPHP-Crawler: So analysieren Sie XML-Dokumente mit XPath. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn