PHP에서 XML을 배열로 변환

Subodh Poudel 2023년1월30일
  1. simplexml_load_string(), json_encode()json_decode() 함수를 사용하여 PHP에서 XML을 배열로 변환
  2. simplexml_load_file() 함수를 사용하고 이를 배열로 타입캐스트하여 PHP에서 XML을 배열로 변환
PHP에서 XML을 배열로 변환

이 튜토리얼에서는 PHP에서 XML을 배열로 변환하는 방법을 소개합니다.

simplexml_load_string(), json_encode()json_decode() 함수를 사용하여 PHP에서 XML을 배열로 변환

일련의 변환을 통해 XML 데이터를 PHP 배열로 나타낼 수 있습니다.

simplexml_load_string() 함수를 사용하여 XML 문자열을 객체로 해석할 수 있습니다. 이 함수는 XML 문자열을 첫 번째 매개변수로 사용합니다.

클래스를 두 번째 옵션으로 지정할 수 있습니다. 함수는 지정된 클래스의 객체를 반환합니다. 함수의 세 번째 매개변수는 LIBXML 상수입니다.

다음으로 json_encode() 함수를 사용하여 객체를 JSON으로 변환해야 합니다. 마지막 부분에서 TRUE 매개변수와 함께 json_decode() 함수를 사용하여 JSON을 배열로 변환할 수 있습니다.

예를 들어, 다음 XML 데이터를 고려하십시오.

<students>
 <bachelors>
 <name>Jack</name>
 <name>Hari</name>
 </bachelors>
 <masters>
 <name>Sia</name>
 <name>Paul</name>
 </masters>
</students>

$xmlstr 변수를 만들고 모든 XML을 변수에 문자열로 저장합니다. 다음으로 다른 변수 $XML을 만들고 simplexml_load_string() 함수를 할당합니다.

함수에서 $xmlstr을 첫 번째 매개변수로 설정하고 SimpleXMLElement를 클래스로, LIBXML_NOCDATA를 세 번째 매개변수로 설정합니다. 다음으로 json_encode() 함수를 사용하여 $XML을 JSON으로 변환합니다.

그런 다음 json_decode() 함수를 사용하여 JSON을 배열로 변환합니다. json_decode() 함수의 두 번째 매개변수로 TRUE를 포함하는 것을 잊지 마십시오. 마지막으로 배열을 인쇄합니다.

여기에서 LIBXML_NOCDATA 상수는 문자 데이터(CDATA)를 텍스트 노드로 병합합니다. 따라서 이러한 다양한 PHP 함수를 사용하여 XML을 PHP 배열로 변환할 수 있습니다.

$xmlstr ='
<students>
 <bachelors>
 <name>Jack</name>
 <name>Hari</name>
 </bachelors>
 <masters>
 <name>Sia</name>
 <name>Paul</name>
 </masters>
</students>';
$XML = simplexml_load_string($xmlstr, "SimpleXMLElement", LIBXML_NOCDATA);
$json = json_encode($XML);
$arr = json_decode($json,TRUE);
print_r($arr);

출력:

Array ( [bachelors] => Array ( [name] => Array ( [0] => Jack [1] => Hari ) ) [masters] => Array ( [name] => Array ( [0] => Sia [1] => Paul ) ) ) 

simplexml_load_file() 함수를 사용하고 이를 배열로 타입캐스트하여 PHP에서 XML을 배열로 변환

simplexml_load_file() 함수를 사용하여 XML을 객체로 해석할 수 있습니다. 그런 다음 객체를 형변환하여 배열로 변환할 수 있습니다.

이 함수는 XML 파일의 경로를 첫 번째 매개변수로 사용합니다. 이 함수는 simplexml_load_string() 함수와 거의 유사합니다. XML 파일을 만들고 simplexml_load_file() 함수에서 해당 경로를 사용할 수 있습니다.

예를 들어 첫 번째 방법에서 동일한 XML 파일을 사용하고 XML 파일을 file.xml로 저장하고 PHP에서 변수 $XML을 생성할 수 있습니다. file.xml을 매개변수로 사용하여 simplexml_load_file()을 변수에 할당합니다.

다음으로 $arr 변수를 만들고 $XML 변수를 배열로 형변환합니다. typecasted 배열을 $arr 변수에 할당합니다. 마지막으로 print_r() 함수를 사용하여 $arr 변수를 인쇄합니다.

이런 식으로 simplexml_load_file() 함수를 사용하여 XML 파일을 로드하고 배열로 변환할 수 있습니다.

$XML = simplexml_load_file('file.xml');
$arr = (array)$XML;
print_r($arr);

출력:

Array ( [bachelors] => SimpleXMLElement Object ( [name] => Array ( [0] => Jack [1] => Hari ) ) [masters] => SimpleXMLElement Object ( [name] => Array ( [0] => Sia [1] => Paul ) ) ) 
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

관련 문장 - PHP XML

관련 문장 - PHP Array