Hướng dẫn how to read xml using php - cách đọc xml bằng php


SimplexML là một phần mở rộng PHP cho phép chúng tôi dễ dàng thao tác và lấy dữ liệu XML.


Trình phân tích cú pháp SimplexML

SimplexML là một trình phân tích cú pháp dựa trên cây.

SimplexML cung cấp một cách dễ dàng để có được tên, thuộc tính và nội dung văn bản của một phần tử nếu bạn biết cấu trúc hoặc bố cục của tài liệu XML.

SimplexML biến một tài liệu XML thành cấu trúc dữ liệu mà bạn có thể lặp lại giống như một tập hợp các mảng và đối tượng.

So với DOM hoặc Trình phân tích cú pháp người nước ngoài, SimplexML có ít dòng mã hơn để đọc dữ liệu văn bản từ một phần tử.


Cài đặt

Từ PHP 5, các hàm simplexml là một phần của lõi PHP. Không cần cài đặt để sử dụng các chức năng này.


PHP Simplexml - Đọc từ Chuỗi

Hàm Php simplexml_load_string() được sử dụng để đọc dữ liệu XML từ một chuỗi.

Giả sử chúng ta có một biến chứa dữ liệu XML, như thế này:

$ myxmldata = "tove jani nhắc nhở đừng quên tôi vào cuối tuần này!";
"

Tove
Jani
Reminder
Don't forget me this weekend!
";

Ví dụ dưới đây cho thấy cách sử dụng chức năng simplexml_load_string() để đọc dữ liệu XML từ chuỗi:

Thí dụ

$myXMLData =
"

Tove
Jani
Reminder
Don't forget me this weekend!
";

$ xml = SimpleXML_LOAD_STRING ($ myxmldata) hoặc die ("Lỗi: không thể tạo đối tượng"); print_r ($ xml); ?>
print_r($xml);
?>

Chạy ví dụ »

Đầu ra của mã ở trên sẽ là:

Đối tượng SimplexMlelement ([to] => tove [from] => jani [tiêu đề] => nhắc nhở [Body] => Đừng quên tôi vào cuối tuần này!)

Mẹo xử lý lỗi: Sử dụng chức năng LibXML để truy xuất tất cả các lỗi XML khi tải tài liệu và sau đó lặp lại các lỗi. Ví dụ sau cố gắng tải chuỗi XML bị hỏng: Use the libxml functionality to retrieve all XML errors when loading the document and then iterate over the errors. The following example tries to load a broken XML string:

Thí dụ

libxml_use_internal_errors(true);
$myXMLData =
"

John Doe

";

$ xml = SimpleXML_LOAD_STRING ($ myxmldata) hoặc die ("Lỗi: không thể tạo đối tượng"); print_r ($ xml); ?>
if ($xml === false) {
  echo "Failed loading XML: ";
  foreach(libxml_get_errors() as $error) {
    echo "
", $error->message;
  }
} else {
  print_r($xml);
}
?>

Chạy ví dụ »

Đầu ra của mã ở trên sẽ là:

Đối tượng SimplexMlelement ([to] => tove [from] => jani [tiêu đề] => nhắc nhở [Body] => Đừng quên tôi vào cuối tuần này!)
Opening and ending tag mismatch: user line 3 and wronguser
Opening and ending tag mismatch: email line 4 and wrongemail



Mẹo xử lý lỗi: Sử dụng chức năng LibXML để truy xuất tất cả các lỗi XML khi tải tài liệu và sau đó lặp lại các lỗi. Ví dụ sau cố gắng tải chuỗi XML bị hỏng:

$ xml = simplexml_load_string ($ myxmldata); if ($ xml === false) {& nbsp; echo "tải thất bại xml:"; & nbsp; foreach (libxml_get_errors () là $ error) {& nbsp; & nbsp; & nbsp; echo "", $ error-> tin nhắn; & nbsp; }} khác {& nbsp; print_r ($ xml);}?>

Tải thất bại XML: Mở và kết thúc thẻ không phù hợp: Dòng người dùng 3 và Saiseropening và kết thúc thẻ không phù hợp: dòng email 4 và sai

PHP Simplexml - Đọc từ tệp

  Tove
  Jani
  Reminder
  Don't forget me this weekend!

Hàm Php simplexml_load_file() được sử dụng để đọc dữ liệu XML từ một tệp.

Thí dụ

$xml=simplexml_load_file("note.xml") or die("Error: Cannot create object");
print_r($xml);
?>

Chạy ví dụ »

Đầu ra của mã ở trên sẽ là:

Đối tượng SimplexMlelement ([to] => tove [from] => jani [tiêu đề] => nhắc nhở [Body] => Đừng quên tôi vào cuối tuần này!)

Mẹo xử lý lỗi: Sử dụng chức năng LibXML để truy xuất tất cả các lỗi XML khi tải tài liệu và sau đó lặp lại các lỗi. Ví dụ sau cố gắng tải chuỗi XML bị hỏng: The next chapter shows how to get/retrieve node values from an XML file with SimpleXML!


$ xml = simplexml_load_string ($ myxmldata); if ($ xml === false) {& nbsp; echo "tải thất bại xml:"; & nbsp; foreach (libxml_get_errors () là $ error) {& nbsp; & nbsp; & nbsp; echo "", $ error-> tin nhắn; & nbsp; }} khác {& nbsp; print_r ($ xml);}?>

Tải thất bại XML: Mở và kết thúc thẻ không phù hợp: Dòng người dùng 3 và Saiseropening và kết thúc thẻ không phù hợp: dòng email 4 và sai



XML là gì?

XML là từ viết tắt của ngôn ngữ đánh dấu mở rộng.

XML được sử dụng để cấu trúc, lưu trữ và vận chuyển dữ liệu từ hệ thống này sang hệ thống khác.

XML tương tự như HTML.

Nó sử dụng các thẻ mở và đóng.

Không giống như HTML, XML cho phép người dùng xác định thẻ của riêng họ.

Trong hướng dẫn này, bạn sẽ học-

  • Dom là gì?
  • Trình phân tích cú pháp XML
  • Tại sao sử dụng XML?
  • Ví dụ về tài liệu XML
  • Cách đọc XML bằng PHP
  • Cách tạo tài liệu XML bằng PHP

Dom là gì?

DOM là từ viết tắt của mô hình đối tượng tài liệu.

Nó có một nền tảng chéo và tiêu chuẩn trung tính ngôn ngữ xác định cách truy cập và thao tác dữ liệu trong;

  • HTML
  • Xhtml
  • XML

DOM XML được sử dụng để truy cập và thao tác các tài liệu XML. Nó xem tài liệu XML như một cấu trúc cây.

Trình phân tích cú pháp XML

Trình phân tích cú pháp XML là một chương trình dịch tài liệu XML thành đối tượng mô hình đối tượng tài liệu XML (DOM).

Đối tượng DOM XML sau đó có thể được thao tác bằng JavaScript, Python và PHP, v.v.

Từ khóa CDATA là từ viết tắt của dữ liệu ký tự (không phân biệt) được sử dụng để bỏ qua các ký tự đặc biệt như là Hồi khi phân tích tài liệu XML.

Tại sao sử dụng XML?

  • Các dịch vụ web như SOAP và REST sử dụng định dạng XML để trao đổi thông tin. Tìm hiểu XML là gì và cách thức hoạt động của nó sẽ giúp bạn có lợi thế cạnh tranh với tư cách là nhà phát triển vì các ứng dụng hiện đại sử dụng nhiều dịch vụ web.
  • Tài liệu XML có thể được sử dụng để lưu trữ cài đặt cấu hình của ứng dụng
  • Nó cho phép bạn tạo các thẻ tùy chỉnh của riêng bạn giúp nó linh hoạt hơn.

Ví dụ về tài liệu XML

Hãy giả sử rằng bạn đang phát triển một ứng dụng nhận dữ liệu từ dịch vụ web ở định dạng XML.

Dưới đây là mẫu của tài liệu XML trông như thế nào.

<?xml version="1.0" encoding="utf-8"?>

<employees status = "ok">

        <record man_no = "101">

            <name>Joe Paul</name>

            <position>CEO</position>

        </record>

        <record man_no = "102">

            <name>Tasha Smith</name>

            <position>Finance Manager</position>

        </record>

</employees>

HERE,

  • "" Chỉ định phiên bản XML được sử dụng và mã hóa
  • Phần mềm là yếu tố gốc.
  • Một số yếu tố trẻ em là các yếu tố trẻ em và bán hàng tương ứng.

Cách đọc XML bằng PHP

Bây giờ, hãy để viết mã sẽ đọc tài liệu XML nhân viên và hiển thị kết quả trong trình duyệt web. Index.php

<?php

$xml = simplexml_load_file('employees.xml');

echo '<h2>Employees Listing</h2>';

$list = $xml->record;

for ($i = 0; $i < count($list); $i++) {

    echo '<b>Man no:</b> ' . $list[$i]->attributes()->man_no . '<br>';

    echo 'Name: ' . $list[$i]->name . '<br>';

    echo 'Position: ' . $list[$i]->position . '<br><br>';

}
?>

HERE,

  • Tiết $ xml = simplexml_load_file (nhân viên của Google.xml,); Sử dụng chức năng SimpleXML_LOAD_FILE để tải tên tệp nhân viên.xml và gán nội dung cho biến mảng $ xml.
  • Danh sách $ $ = $ xml-> bản ghi; Nhận nội dung của nút bản ghi.
  • Càng cho ($ i = 0; $ i
  • Danh sách $ $ [$ i]-> thuộc tính ()-> man_no; Đọc thuộc tính Man_NO của phần tử
  • Danh sách $ $ [$ i]-> Tên; Đọc giá trị của tên con cái tên
  • Danh sách $ $ [$ i]-> Vị trí; Đọc giá trị của phần tử con vị trí

Kiểm tra ứng dụng của chúng tôi

Giả sử bạn đã lưu tệp index.php trong thư mục phptus/xml, duyệt đến url http: //localhost/phptuts/xml/index.php http://localhost/phptuts/xml/index.php

Hướng dẫn how to read xml using php - cách đọc xml bằng php

Cách tạo tài liệu XML bằng PHP

Bây giờ chúng tôi sẽ xem xét cách tạo tài liệu XML bằng PHP.

Chúng tôi sẽ sử dụng ví dụ trên trong sơ đồ cây Dom.

Mã sau sử dụng PHP được xây dựng trong lớp domdocument để tạo tài liệu XML.

<?php

	$dom = new DOMDocument();

		$dom->encoding = 'utf-8';

		$dom->xmlVersion = '1.0';

		$dom->formatOutput = true;

	$xml_file_name = 'movies_list.xml';

		$root = $dom->createElement('Movies');

		$movie_node = $dom->createElement('movie');

		$attr_movie_id = new DOMAttr('movie_id', '5467');

		$movie_node->setAttributeNode($attr_movie_id);

	$child_node_title = $dom->createElement('Title', 'The Campaign');

		$movie_node->appendChild($child_node_title);

		$child_node_year = $dom->createElement('Year', 2012);

		$movie_node->appendChild($child_node_year);

	$child_node_genre = $dom->createElement('Genre', 'The Campaign');

		$movie_node->appendChild($child_node_genre);

		$child_node_ratings = $dom->createElement('Ratings', 6.2);

		$movie_node->appendChild($child_node_ratings);

		$root->appendChild($movie_node);

		$dom->appendChild($root);

	$dom->save($xml_file_name);

	echo "$xml_file_name has been successfully created";
?>

HERE,

  • Tiết $ dom = new domdocument (); Tạo một thể hiện của lớp DomDocument.
  • Cấm $ dom-> mã hóa = ‘utf-8,; Đặt mã hóa tài liệu thành UTF-8
  • Cấm $ Dom-> xmlversion = ‘1.0,; Chỉ định phiên bản số 1.0
  • Tiết $ DOM-> định dạngtOutput = true; đảm bảo rằng đầu ra được định dạng tốt
  • Tiết $ root = $ dom-> createdelement (‘phim,); tạo ra nút gốc có tên là phim
  • Tiết $ attr_movie_id = new Domattr (‘movie_id,‘ 5467,); Xác định thuộc tính ID phim của nút phim
  • Tiết $ trẻ em_node_element_name = $ dom-> createdEuity (‘ElementName,‘ ElementValue,) Tạo nút con của nút phim. ElementName Chỉ định tên của phần tử, ví dụ: Tiêu đề. ElementValue đặt giá trị nút con, ví dụ: Chiến dịch.
  • Cấm $ root-> appendChild ($ moad_node); Phụ lục các phần tử Movie_Node vào phim nút gốc
  • Cấm $ Dom-> Phụ lục ($ Root); Lối nhiều nút gốc vào tài liệu XML.
  • Tiết $ Dom-> Lưu ($ xml_file_name); Lưu tệp XML trong thư mục gốc của máy chủ web.
  • “Echo

Kiểm tra ứng dụng của chúng tôi

Giả sử bạn đã lưu tệp index.php trong thư mục phptus/xml, duyệt đến url http: //localhost/phptuts/xml/index.phphttp://localhost/phptuts/xml/create_movies_list.php

Hướng dẫn how to read xml using php - cách đọc xml bằng php

Nhấp vào liên kết Phim_List_xml

Hướng dẫn how to read xml using php - cách đọc xml bằng php

Bản tóm tắt

  • XML là từ viết tắt của ngôn ngữ đánh dấu mở rộng
  • XML có thể được sử dụng để trao đổi thông tin giữa các hệ thống hoặc cài đặt cấu hình lưu trữ của một ứng dụng, v.v.
  • DOM là từ viết tắt của mô hình đối tượng tài liệu. XML DOM xem tài liệu XML dưới dạng cấu trúc cây
  • Trình phân tích cú pháp XML là một chương trình dịch XML một tài liệu XML thành cấu trúc cây Dom như tài liệu.
  • CDATA được sử dụng để bỏ qua các ký tự đặc biệt khi phân tích các tài liệu XML.
  • PHP sử dụng simplexml_load_file để đọc tài liệu XML và trả về kết quả dưới dạng mảng số
  • Lớp PHP DomDocument để tạo các tệp XML.

Làm cách nào để sử dụng tệp XML trong PHP?

Cách tạo tài liệu XML bằng PHP..
Tiết $ dom = new domdocument ();Tạo một thể hiện của lớp DomDocument ..
Tiết $ Dom-> mã hóa = 'UTF-8';Đặt mã hóa tài liệu thành UTF-8 ..
Tiết $ Dom-> xmlversion = '1.0';Chỉ định phiên bản số 1.0 ..
Tiết $ DOM-> định dạngtOutput = true;đảm bảo rằng đầu ra được định dạng tốt ..

Làm thế nào nhận được dữ liệu từ URL XML trong PHP?

$ url = 'http://www.example.com';$ xml = simplexml_load_file ($ url, "simplexmlelement", libxml_nocdata);$ url có thể là tệp PHP, miễn là tệp tạo dữ liệu định dạng XML làm đầu ra.Lưu câu trả lời này. $url can be php file, as long as the file generate xml format data as output. Save this answer.

XML đơn giản trong PHP là gì?

SimplexML là một tiện ích mở rộng cho phép chúng tôi dễ dàng thao tác và lấy dữ liệu XML.SimplexML cung cấp một cách dễ dàng để có được tên, thuộc tính và nội dung văn bản của một phần tử nếu bạn biết cấu trúc hoặc bố cục của tài liệu XML.an extension that allows us to easily manipulate and get XML data. SimpleXML provides an easy way of getting an element's name, attributes and textual content if you know the XML document's structure or layout.

Chức năng simplexml_load_file trong PHP là gì?

Hàm simplexml_load_file () chuyển đổi một tài liệu XML thành một đối tượng.converts an XML document to an object.