Heim >Backend-Entwicklung >PHP-Tutorial >So erhalten und analysieren Sie XML-Daten mit dem PHP-Crawler

So erhalten und analysieren Sie XML-Daten mit dem PHP-Crawler

王林
王林Original
2023-06-13 16:31:211854Durchsuche

In der Webentwicklung ist das Abrufen und Parsen von XML-Daten ein sehr häufiger Vorgang. Dieser Artikel konzentriert sich auf die Verwendung eines PHP-Crawlers zum Abrufen und Analysieren von XML-Daten.

1. XML-Daten abrufen

  1. cURL-Bibliothek

cURL-Bibliothek ist eine sehr häufig verwendete PHP-Bibliothek zum Abrufen von Daten. Sie können den folgenden Code verwenden, um XML-Daten von einer Website abzurufen:

$url = 'http://example.com/example.xml';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$xml = curl_exec($ch);
curl_close($ch);

Hier verwenden wir curl_init(), um ein cURL-Objekt zu initialisieren und den Parameter CURLOPT_URL auf die Ziel-URL zu setzen. Wenn Sie den Parameter CURLOPT_RETURNTRANSFER auf 1 setzen, gibt cURL eine Zeichenfolge zurück, anstatt den Inhalt direkt auszugeben.

  1. file_get_contents()-Funktion

Während die cURL-Bibliothek XML-Daten abruft, kann die file_get_contents()-Methode auch XML-Daten abrufen. Wir können dieses Ziel erreichen, indem wir dem folgenden Beispiel folgen:

$url = 'http://example.com/example.xml';
$xml = file_get_contents($url);

2. XML-Daten analysieren

PHP bietet eine Vielzahl von Methoden zum Parsen von XML-Daten.

  1. SimpleXML

SimpleXML ist ein sehr einfach zu verwendender XML-Parser in PHP. Wir können SimpleXML wie folgt verwenden:

$xml = simplexml_load_string($xml);

Hier haben wir die Methode simplexml_load_string() verwendet, um den XML-String zu analysieren und in ein Objekt zu konvertieren.

Angenommen, wir haben das folgende XML-Dokument:

<?xml version="1.0" encoding="UTF-8" ?>
<bookstore>
  <book>
    <title>PHP 7 Programming Blueprints</title>
    <author>Vikram Vaswani</author>
    <price>28.99</price>
  </book>
  <book>
    <title>Mastering PHP 7</title>
    <author>Chad Russell</author>
    <price>39.99</price>
  </book>
</bookstore>

Wir können den folgenden Code verwenden, um auf diese XML-Daten zuzugreifen und sie auszugeben:

foreach ($xml->book as $book) {
  echo "Title: " . $book->title . "<br>";
  echo "Author: " . $book->author . "<br>";
  echo "Price: " . $book->price . "<br>";
}

Die Ausgabe lautet wie folgt:

Title: PHP 7 Programming Blueprints
Author: Vikram Vaswani
Price: 28.99
Title: Mastering PHP 7
Author: Chad Russell
Price: 39.99
  1. DOMDocument

DOMDocument ist ein anderes Wird häufig im PHP-XML-Parser verwendet. Wir können DOMDocument wie folgt verwenden:

$doc = new DOMDocument();
$doc->loadXML($xml);
$books = $doc->getElementsByTagName("book");

foreach ($books as $book) {
  $titles = $book->getElementsByTagName("title");
  $title = $titles->item(0)->nodeValue;

  $authors = $book->getElementsByTagName("author");
  $author = $authors->item(0)->nodeValue;

  $prices = $book->getElementsByTagName("price");
  $price = $prices->item(0)->nodeValue;

  echo "Title: " . $title . "<br>";
  echo "Author: " . $author . "<br>";
  echo "Price: " . $price . "<br>";
}

Hier verwenden wir die DOMDocument-Klasse, um das XML-Dokument zu analysieren, und verwenden dann die Methode getElementsByTagName(), um bestimmte Elemente abzurufen. Die endgültige Ausgabe ist dieselbe wie beim SimpleXML-Parser.

3. Zusammenfassung

In diesem Artikel haben wir gelernt, wie man den PHP-Crawler zum Abrufen und Parsen von XML-Daten verwendet, einschließlich der Verwendung der cURL-Bibliothek und der Funktion file_get_contents() zum Abrufen von XML-Daten sowie der Verwendung von SimpleXML und DOMDocument zum Parsen von XML-Daten. Ich hoffe, dieser Artikel ist hilfreich für Sie.

Das obige ist der detaillierte Inhalt vonSo erhalten und analysieren Sie XML-Daten mit dem PHP-Crawler. 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