Konwertuj XML na tablicę asocjacyjną w PHP

Convert Xml Associative Array Php



XML (Extensible Markup Language) to jeden z typów języka znaczników, który służy do przechowywania danych w formacie czytelnym dla człowieka. Różni się od innych języków znaczników. Każdy tag tego języka jest zdefiniowany przez użytkownika. Używanie 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 wykorzystać w dowolnej aplikacji internetowej za pomocą skryptu PHP. W tym samouczku pokazano, jak dokument XML może być analizowany i przechowywany w tablicy asocjacyjnej.

Niezbędne funkcje

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







file_get_contents():



Ta funkcja zwraca dane ciągu, konwertując dowolne dane XML. Jako argument przyjmuje dowolną nazwę pliku XML.



simplexml_load_string():





Ta funkcja zwraca obiekt XML, konwertując dane ciągu XML. Jako argument przyjmuje dane ciągu XML.

simplexml_load_file():



Ta funkcja zwraca obiekt XML, konwertując zawartość pliku XML. Jako argument przyjmuje nazwę pliku XML.

SimpleXMLElement ():

Służy do tworzenia obiektu XML z danych XML. Jako argument przyjmuje wartość zawartości XML.

json_encode():

Zwraca obiekt JSON, konwertując obiekt XML. Jako argument przyjmuje zmienną obiektu XML.

json_decode():

Zwraca tablicę asocjacyjną PHP poprzez konwersję danych JSON. Jako argument przyjmuje zmienną obiektu JSON.

Utwórz plik XML

Będziesz musiał utworzyć plik XML lub zdefiniować dane XML w skrypcie, aby poznać sposób konwersji danych XML na asocjacyjną tablicę PHP. Utwórz plik XML o nazwiecourse.xml z następującą zawartością i zapisz go w lokalizacji, w której znajduje się skrypt PHP. Plik zawiera elementy podrzędne pod elementem nadrzędnym. Tak więc dwuwymiarowa tablica asocjacyjna zostanie wygenerowana po przekonwertowaniu następującego pliku XML na tablicę PHP.

kursy.xml

wersja=„1.0”?>
>
>Programowanie sieciowe>
>6 miesięcy>
>
>
>Radość programowania w PHP>
>Alan Forbes>
>Śliwkowa Wyspa>
>
>
>PHP& MySQL Nowicjusz dla Ninja
Tom Butler i Kevin Yank
SitePoint


Pierwsze kroki w PHP i MySQL
Lynn Beighley i Michael Morrison
O’Reilly


Przykład-1: Konwertuj zawartość pliku XML na tablicę asocjacyjną bez sprawdzania błędów

Poniższy skrypt pokazuje zastosowania funkcji file_get_contents() i simplexml_load_string() do tworzenia obiektu XML. Tutaj do konwersji, która została wcześniej stworzona, używany jest plikcourse.xml. Następnie funkcje json_encode() i json_decode() służą do pobrania tablicy asocjacyjnej po przekonwertowaniu zawartości pliku XML. Jeśli w treści XML nie ma błędu, poniższy skrypt nie wyświetli żadnego błędu. Tutaj, |_+_| tag służy do drukowania tablicy w sformatowany sposób.



//Zdefiniuj istniejący plik XML
$xml = „kursy.xml”;

//Odczytaj pełną zawartość pliku XML jako ciąg XML
$xmlDane = file_get_contents ($xml);

//Konwertuj dane ciągu XML na obiekt XML
$xmlObject = simplexml_load_string ($xmlDane);

//Konwertuj obiekt XML na obiekt JSON
$jsonObject = json_encode ($xmlObject);

//Konwertuj obiekt JSON na tablicę asocjacyjną
$assArray = json_decode ($jsonObject, prawda);

//Wydrukuj strukturę tablicy asocjacyjnej
wyrzucił '
  
';

?>

Wyjście:

Poniższe dane wyjściowe pojawią się po wykonaniu skryptu PHP. Tutaj generowana jest dwuwymiarowa tablica na podstawie zawartości pliku XML,courses.xml.

Przykład-2: Konwertuj zawartość pliku XML na tablicę asocjacyjną ze sprawdzaniem błędu

Lepiej jest sprawdzić błąd podczas konwersji XML na tablicę asocjacyjną. Pomoże to koderowi w debugowaniu kodu, jeśli w skrypcie zaimplementowano sprawdzanie błędów. Poniższy skrypt przedstawia sposoby konwertowania zawartości pliku XML na tablicę asocjacyjną przy użyciu funkcji simplexml_load_file() z obsługą błędów. Funkcja libxml_use_internal_errors() jest używana z wartością TRUE, aby włączyć obsługę błędów. Jeśli zawartość pliku XML, która jest używana w skrypcie zawiera jakikolwiek błąd, funkcja simplexml_load_file() zwróci false, a komunikat o błędzie zostanie wydrukowany przy użyciu funkcji libxml_get_errors(). Jeśli w pliku XML nie ma błędu, zawartość pliku zostanie poprawnie przekonwertowana na dwuwymiarową tablicę asocjacyjną.



//Włącz obsługę błędów użytkownika
libxml_use_internal_errors (PRAWDA);

//Utwórz obiekt XML
$ objXml = simplexml_load_file („kursy.xml”);

//Wydrukuj błąd, jeśli obiekt XML zwraca false
Jeśli ($ objXml === FAŁSZYWE) {
wyrzucił 'Wystąpiły błędy podczas analizowania pliku XML. ';
dla każdego( libxml_get_errors () jak $ błąd) {
wyrzucił $ błąd->wiadomość;
}
Wyjście ;
}

//Konwertuj obiekt XML na obiekt JSON
$ objJson = json_encode ($ objXml);
//Konwertuj obiekt JSON na tablicę asocjacyjną
$assarr = json_decode ($ objJson, PRAWDA);

//Wydrukuj strukturę tablicy asocjacyjnej
wyrzucił '
';  
print_r ($assArray);
echo '
'
;

?>

Wyjście:

Poniższe dane wyjściowe pojawią się po wykonaniu skryptu PHP. Tutaj nie ma błędu w pliku XML. Tak więc, podobnie jak w poprzednim przykładzie, wygenerowano dwuwymiarową tablicę na podstawie zawartości pliku XML,courses.xml.

Przykład-3: Konwersja zawartości XML na tablicę asocjacyjną

Poniższy skrypt pokazuje sposób konwertowania danych XML na 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 funkcje json_encode() i json_decode() służą do pobrania tablicy asocjacyjnej po przekonwertowaniu zawartości pliku XML.



//Zdefiniuj zmienną XML
$xml = <<


[e-mail chroniony]

12 / A, Dhanmondi
Dhaka



[e-mail chroniony]

156, motyw
Dhaka



[e-mail chroniony]

21 / B, Mogbazar
Dhaka



XML
;

//Utwórz obiekt XML
$xmlObject = NowySimpleXMLElement($xml);
//Utwórz obiekt JSON
$jsonObject = json_encode ($xmlObject);
//Konwertuj obiekt JSON na tablicę asocjacyjną
$assArray = json_decode ($jsonObject, prawda);

//Wydrukuj strukturę tablicy asocjacyjnej
wyrzucił '
';  
print_r ($assarr);
echo '
'
;

?>

Wyjście:

Poniższe dane wyjściowe pojawią się po wykonaniu skryptu PHP. Tutaj generowana jest dwuwymiarowa tablica na podstawie zawartości zmiennej XML $xml.

Wniosek:

Istniały trzy różne sposoby konwertowania zawartości XML na tablicę asocjacyjną, które pokazano w tym samouczku. Pomoże to czytelnikom poznać sposób pracy z danymi XML i łatwo analizować dane z zawartości XML za pomocą skryptu PHP.