Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk mendapatkan dan menghuraikan data XML menggunakan perangkak PHP

Bagaimana untuk mendapatkan dan menghuraikan data XML menggunakan perangkak PHP

王林
王林asal
2023-06-13 16:31:211853semak imbas

Dalam pembangunan web, mendapatkan dan menghuraikan data XML adalah operasi yang sangat biasa. Artikel ini akan menumpukan pada cara menggunakan perangkak PHP untuk mendapatkan dan menghuraikan data XML.

1. Mendapatkan data XML

  1. pustaka cURL

pustaka cURL ialah perpustakaan PHP yang sangat biasa digunakan untuk mendapatkan data. Anda boleh menggunakan kod berikut untuk mendapatkan data XML daripada tapak web:

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

Di sini kami menggunakan curl_init() untuk memulakan objek cURL dan menetapkan parameter CURLOPT_URL kepada URL sasaran. Menetapkan parameter CURLOPT_RETURNTRANSFER kepada 1 akan menyebabkan cURL mengembalikan rentetan dan bukannya mengeluarkan kandungan secara langsung.

  1. fungsi file_get_contents()

Sementara pustaka cURL memperoleh data XML, kaedah file_get_contents() juga boleh mendapatkan data XML. Kita boleh mencapai matlamat ini dengan mengikuti contoh berikut:

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

2 Menghuraikan data XML

PHP menyediakan pelbagai kaedah untuk menghuraikan data XML.

  1. SimpleXML

SimpleXML ialah penghurai XML yang sangat mudah digunakan dalam PHP. Kita boleh menggunakan SimpleXML seperti berikut:

$xml = simplexml_load_string($xml);

Di sini kami telah menggunakan kaedah simplexml_load_string() untuk menghuraikan rentetan XML dan menukarnya menjadi objek.

Sebagai contoh, katakan kita mempunyai dokumen XML berikut:

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

Kita boleh menggunakan kod berikut untuk mengakses dan mengeluarkan data XML ini:

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

Keluarannya adalah seperti berikut :

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

DOMDocument ialah satu lagi penghurai XML yang biasa digunakan dalam PHP. Kita boleh menggunakan DOMDocument seperti berikut:

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

Di sini kita menggunakan kelas DOMDocument untuk menghuraikan dokumen XML, dan kemudian menggunakan kaedah getElementsByTagName() untuk mendapatkan elemen tertentu. Output akhir adalah sama dengan penghurai SimpleXML.

3. Ringkasan

Dalam artikel ini, kami mempelajari cara menggunakan perangkak PHP untuk mendapatkan dan menghuraikan data XML, termasuk menggunakan pustaka cURL dan fungsi file_get_contents() untuk mendapatkan data XML dan menggunakan SimpleXML dan DOMDocument menghuraikan data XML. Semoga artikel ini bermanfaat kepada anda.

Atas ialah kandungan terperinci Bagaimana untuk mendapatkan dan menghuraikan data XML menggunakan perangkak PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn