ホームページ >バックエンド開発 >PHPチュートリアル >PHP クローラーを使用して XML データを取得および解析する方法

PHP クローラーを使用して XML データを取得および解析する方法

王林
王林オリジナル
2023-06-13 16:31:211894ブラウズ

Web 開発では、XML データの取得と解析は非常に一般的な操作です。この記事では、PHP クローラーを使用して XML データを取得および解析する方法に焦点を当てます。

1. XML データの取得

  1. cURL ライブラリ

cURL ライブラリは、データを取得するために非常によく使用される PHP ライブラリです。次のコードを使用して、Web サイトから XML データを取得できます。

$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);

ここでは、curl_init() を使用して cURL オブジェクトを初期化し、CURLOPT_URL パラメーターをターゲット URL に設定します。 CURLOPT_RETURTRANSFER パラメータを 1 に設定すると、cURL はコンテンツを直接出力する代わりに文字列を返します。

  1. file_get_contents() 関数

cURL ライブラリが XML データを取得する一方で、file_get_contents() メソッドでも XML データを取得できます。次の例に従うことで、この目標を達成できます:

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

2. XML データの解析

PHP には、XML データを解析するためのさまざまなメソッドが用意されています。

  1. SimpleXML

SimpleXML は、PHP で非常に使いやすい XML パーサーです。 SimpleXML は次のように使用できます。

$xml = simplexml_load_string($xml);

ここでは、simplexml_load_string() メソッドを使用して XML 文字列を解析し、オブジェクトに変換しています。

たとえば、次の XML ドキュメントがあるとします。

<?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>

次のコードを使用して、この XML データにアクセスして出力できます。

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

出力は次のとおりです。 :

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

DOMDocument は、PHP でよく使用されるもう 1 つの XML パーサーです。 DOMDocument は次のように使用できます。

$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>";
}

ここでは、DOMDocument クラスを使用して XML ドキュメントを解析し、次に getElementsByTagName() メソッドを使用して特定の要素を取得します。最終出力は SimpleXML パーサーと同じです。

3. 概要

この記事では、PHP クローラーを使用して XML データを取得および解析する方法 (cURL ライブラリと file_get_contents() 関数を使用して XML データを取得する方法や、 SimpleXML と DOMDocument は XML データを解析します。この記事がお役に立てば幸いです。

以上がPHP クローラーを使用して XML データを取得および解析する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。