Konwertuj XML na tablicę asocjacyjną w PHP

Konwertuj XML na tablicę asocjacyjną w PHP

XML (rozszerzalny język znaczników) to jeden rodzaj języka znaczników, który jest używany do przechowywania danych w formacie czytelnym człowieka. Różni się od innych języków znaczników. Każdy znacznik tego języka jest zdefiniowany przez użytkownika. Korzystanie z XML jest lepszym rozwiązaniem do przechowywania niewielkiej ilości danych, gdy nie chcesz używać żadnej bazy danych do przechowywania danych. Dane z dokumentu XML można łatwo uzyskać i użyć w dowolnej aplikacji internetowej za pomocą skryptu PHP. W tym samouczku można przeanalizować dokument XML i przechowywać w tablicy asocjacyjnej.

Niezbędne funkcje

Niektóre wbudowane funkcje służą do konwersji zawartości XML na asocjacyjną tablicę PHP. Cele różnych funkcji wyjaśniono poniżej.

file_get_contents ():

Ta funkcja zwraca dane ciągu, konwersji dowolnej danych XML. Zajmuje dowolną nazwę pliku XML jako argument.

simplexml_load_string ():

Ta funkcja zwraca obiekt XML, przekształcając dane ciągów XML. Zajmuje dane łańcucha XML jako argument.

simplexml_load_file ():

Ta funkcja zwraca obiekt XML, przekształcając zawartość pliku XML. Bierze nazwę pliku XML jako argument.

Simplexmlelement ():

Służy do tworzenia obiektu XML z danych XML. Zajmuje wartość treści XML jako argument.

json_encode ():

Zwraca obiekt JSON, przekształcając obiekt XML. Zmienia się zmienną obiektu XML jako argumentu.

JSON_DECODE ():

Zwraca asocjacyjną tablicę PHP poprzez konwersję danych JSON. Zmienia się zmienną obiektową JSON jako argument.

Utwórz plik XML

Będziesz zobowiązany do utworzenia pliku XML lub zdefiniowania danych XML w skrypcie, aby poznać drogę do konwersji danych XML w asocjacyjną tablicę PHP. Utwórz plik XML o nazwie kursy.XML z następującą zawartością i przechowuj ją w miejscu, w którym znajduje się skrypt PHP. Plik zawiera elementy dziecięce pod elementem nadrzędnym. Tak więc dwuwymiarowa tablica asocjacyjna wygeneruje po przekształceniu następującego pliku XML w tablicę PHP.

kursy.XML



Programowanie sieciowe
6 miesięcy


Radość programowania PHP
Alan Forbes
Wyspa Plum


PHP i MySQL nowicjusz do Ninja
Tom Butler i Kevin Yank
SitePoint


Head First PHP i MySQL
Lynn Beighley i Michael Morrison
O'Reilly


Przykład-1: Konwertuj treść pliku XML na tablicę asocjacyjną bez błędu sprawdzania

Poniższy skrypt pokazuje użycia funkcji FILE_GET_CONTENTS () i SIPPLEXML_LOAD_SSTRING (), aby utworzyć obiekt XML. Tutaj kursy.Plik XML służy do konwersji, który został utworzony wcześniej. Następnie funkcja JSON_ENCODE () i JSON_DECODE () są używane do uzyskania tablicy asocjacyjnej po przekształceniu zawartości pliku XML. Jeśli nie ma błędu w zawartości XML, wówczas nie zostanie wyświetlony błąd następujący skrypt. Tutaj,

 Tag służy do drukowania tablicy w sformatowany sposób.

// Zdefiniuj istniejący plik XML
$ xml = "kursy.xml ";
// Odczyt pełną zawartość pliku XML jako ciąg XML
$ xmldata = file_get_contents ($ xml);
// Konwertuj dane ciągów XML na obiekt XML
$ xmlobject = simplexml_load_string ($ xmldata);
// Konwertuj obiekt XML na obiekt JSON
$ jsonObject = json_encode ($ xmlobject);
// Konwertuj obiekt JSON na tablicę asocjacyjną
$ Assarray = json_decode ($ jsonObject, true);
// Wydrukuj strukturę tablicy asocjacyjnej
Echo "

";
print_r ($ Assarray);
Echo "

";
?>

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu skryptu PHP. Tutaj generowana jest dwuwymiarowa tablica na podstawie zawartości pliku XML, kursów.XML.

Przykład-2: Konwertuj zawartość pliku XML na tablicę asocjacyjną z błędem sprawdzania

Lepiej jest sprawdzić błąd podczas przekształcania XML w tablicę asocjacyjną. Pomoże koderowi debugować kod, jeśli sprawdzanie błędów zostanie zaimplementowane w skrypcie. Poniższy skrypt pokazuje sposoby konwersji zawartości pliku XML na tablicę asocjacyjną za pomocą funkcji simplexml_load_file () z obsługą błędów. Funkcja libxml_use_internal_errors () jest używana z wartością prawdziwą, aby umożliwić obsługę błędów. Jeśli zawartość pliku XML używana w skrypcie zawiera dowolny błąd, funkcja simplexml_load_file () zwróci false, a komunikat o błędzie zostanie wydrukowany za pomocą libxml_get_errors () funkcja funkcji. Jeśli w pliku XML nie istnieje błąd, zawartość pliku będzie poprawnie konwertować na dwuwymiarową tablicę asocjacyjną.

// Włącz obsługę błędów użytkownika
libxml_use_internal_errors (true);
// Utwórz obiekt XML
$ objxml = simplexml_load_file ("kursy.xml ");
// Wydrukuj błąd, jeśli obiekt XML zwraca false
if ($ objxml === false)
echo „Wystąpiły błędy analizujące plik XML.\N";
foreach (libxml_get_errors () jako $ error)
echo $ error-> komunikat;

Wyjście;

// Konwertuj obiekt XML na obiekt JSON
$ objjson = json_encode ($ objxml);
// Konwertuj obiekt JSON na tablicę asocjacyjną
$ Assarr = json_decode ($ objjson, true);
// Wydrukuj strukturę tablicy asocjacyjnej
Echo "
";
print_r ($ Assarr);
Echo "
";
?>

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu skryptu PHP. Tutaj nie ma błędu w pliku XML. Tak więc dwuwymiarowa tablica wygenerowała tak jak poprzedni przykład w oparciu o treść pliku XML, kursy.XML.

Przykład-3: Konwertuj treść XML na tablicę asocjacyjną

Poniższy skrypt pokazuje sposób przekształcenia danych XML w tablicę asocjacyjną za pomocą funkcji simplexmlelement (). W skrypcie zawartość XML jest przechowywana w zmiennej o nazwie xml, która jest używana jako argument funkcji, simplexmlelement (). Następnie funkcja JSON_ENCODE () i JSON_DECODE () są używane do uzyskania tablicy asocjacyjnej po przekształceniu zawartości pliku XML.

// Zdefiniuj zmienną XML
$ xml = <<


Jolly@Przykład.com

12/A, Dhanmondi
Dhaka



Jafar@Przykład.com

156, Motijeel
Dhaka



JONY@Przykład.com

21/B, Mogbazar
Dhaka



Xml;
// Utwórz obiekt XML
$ xmlobject = nowy simplexMlelement ($ xml);
// Utwórz obiekt JSON
$ jsonObject = json_encode ($ xmlobject);
// Konwertuj obiekt JSON na tablicę asocjacyjną
$ Assarray = json_decode ($ jsonObject, true);
// Wydrukuj strukturę tablicy asocjacyjnej
Echo "
";
print_r ($ Assarray);
Echo "
";
?>

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu skryptu PHP. Tutaj generowana jest dwuwymiarowa tablica na podstawie zawartości zmiennej XML, $ xml.

Wniosek:

Były trzy różne sposoby przekształcania treści XML w tablicę asocjacyjną, która została pokazana w tym samouczku. Pomoże to czytelnikom poznać sposób pracy z danymi XML i parować dane z treści XML za pomocą skryptu PHP.