Hướng dẫn how to parse xml file php? - làm thế nào để phân tích cú pháp tệp xml 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. Show
Trình phân tích cú pháp SimplexMLSimplexML 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 đặtTừ 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ỗiHàm Php 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!"; Ví dụ dưới đây cho thấy cách sử dụng chức năng Thí dụ$myXMLData = $ xml = SimpleXML_LOAD_STRING ($ myxmldata) hoặc die ("Lỗi: không thể tạo đối tượng"); 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); $ xml = SimpleXML_LOAD_STRING ($ myxmldata) hoặc die ("Lỗi: không thể tạo đối tượng"); 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:$ 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 Hàm Php Thí dụ $xml=simplexml_load_file("note.xml") or die("Error: Cannot create object"); 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 Trong bài đăng này, bạn sẽ học cách phân tích XML vào một mảng trong PHP. SimplexML là một phần mở rộng PHP giúp điều này có thể. Trong phát triển PHP hàng ngày của bạn, đôi khi bạn sẽ cần phải đối phó với nội dung XML. Cho dù đó là xuất khẩu dữ liệu dưới dạng tài liệu XML hoặc xử lý các tài liệu XML đến trong ứng dụng của bạn, thì nó luôn luôn tiện dụng để có một thư viện có thể thực hiện các hoạt động này một cách trơn tru. Khi nói đến việc xử lý XML trong PHP, có nhiều phương pháp khác nhau để lựa chọn. Trên thực tế, có các tiện ích mở rộng khác nhau có sẵn trong PHP cho phép bạn đọc và phân tích các tài liệu XML. Trình phân tích cú pháp PHP XML dựa trên thư viện Expat của James Clark, đây là thư viện XML định hướng luồng được viết bằng C. Thư viện trình phân tích cú pháp XML này cho phép bạn phân tích các tài liệu XML, nhưng nó không thể xác nhận chúng. Nó dựa trên sự kiện và hướng đến luồng, và do đó, nó thực sự hữu ích khi bạn xử lý các tệp XML rất lớn, nhưng phức tạp hơn một chút so với các tệp nhỏ. Tùy chọn khác là tiện ích mở rộng SimplexML, là một trong những tiện ích mở rộng phổ biến nhất được cộng đồng PHP sử dụng để xử lý các tài liệu XML. Phần mở rộng SimplexML cho phép bạn phân tích các tài liệu XML rất dễ dàng, giống như bạn đang đọc một tệp trong PHP. Trong bài viết này, chúng tôi sẽ sử dụng tiện ích mở rộng SimplexML để chứng minh cách bạn có thể chuyển đổi nội dung XML thành một mảng. Nếu bạn muốn theo dõi cùng với ví dụ trong bài viết này, hãy đảm bảo rằng bạn đã cài đặt tiện ích mở rộng SimplexML trong cài đặt PHP của mình. Tiện ích mở rộng php simplexmlPhần mở rộng PHP đơn giản cung cấp bộ công cụ hoàn chỉnh mà bạn có thể sử dụng để đọc, ghi và phân tích các tài liệu XML trong các ứng dụng PHP của bạn. Điều quan trọng cần lưu ý là tiện ích mở rộng SimplexML yêu cầu Php 5 ở mức tối thiểu. Ngoài ra, nó yêu cầu tiện ích mở rộng php LibXML. Phần mở rộng SimplexML được bật theo mặc định, nhưng nếu bạn muốn kiểm tra xem nó có được bật trong cài đặt PHP của mình không, bạn có thể kiểm tra nhanh bằng cách sử dụng chức năng ____ 9 & nbsp; Như bạn có thể thấy, bạn sẽ thấy phần SimplexML trong đầu ra của chức năng ____ 9 & nbsp; Phần mở rộng SimplexML cung cấp các chức năng khác nhau mà bạn có thể sử dụng để đọc và phân tích nội dung XML. Tải một chuỗi XML hoặc tệp với SimplexMLVí dụ: nếu bạn muốn phân tích tệp XML, bạn có thể sử dụng chức năng ____ 7 & nbsp; Hàm ____ 7 & nbsp; cho phép bạn đọc và phân tích tệp XML trong một cuộc gọi. Mặt khác, nếu bạn có chuỗi XML mà bạn muốn chuyển đổi thành đối tượng tài liệu XML, bạn có thể sử dụng chức năng ________ 5 & nbsp;. Bạn cũng có thể sử dụng hàm ____ 14 & nbsp; để đọc nội dung tệp và chuyển chuỗi kết quả cho hàm message; } exit; } $objJsonDocument = json_encode($objXmlDocument); $arrOutput = json_decode($objJsonDocument, TRUE); echo ""; print_r($arrOutput); ?>6 và các phương thức tiện ích của nó để chuyển đổi chuỗi XML thành một đối tượng.
Đối với các mục đích trình diễn, hãy để giả sử rằng chúng tôi có một tệp XML như được hiển thị trong đoạn trích sau. Chúng tôi sẽ gọi nó là nhân viên.xml. Nó chứa các chi tiết cơ bản của tất cả nhân viên. Mục đích của chúng tôi là chuyển đổi nó thành một mảng mà bạn có thể sử dụng để xử lý thêm.employees.xml. It contains the basic details of all employees. Our aim is to convert it into an array that you could use for further processing.
Như bạn có thể thấy, tệp nhân viên.xml chứa tên và email của nhân viên. Điều quan trọng cần lưu ý là giá trị $objJsonDocument = json_encode($objXmlDocument);3 được truyền dưới dạng thuộc tính của thẻ $objJsonDocument = json_encode($objXmlDocument);4.employees.xml file contains the names and emails of employees. It’s important to note that the $objJsonDocument = json_encode($objXmlDocument);3 value is passed as an attribute of the $objJsonDocument = json_encode($objXmlDocument);4 tag. Tiếp theo, tạo tệp SimplexML.php với các nội dung sau.simplexml.php file with the following contents. message; } exit; } $objJsonDocument = json_encode($objXmlDocument); $arrOutput = json_decode($objJsonDocument, TRUE); echo ""; print_r($arrOutput); ?> |