>백엔드 개발 >PHP 튜토리얼 >PHP 배열과 XML 간의 변환 예제에 대한 자세한 설명

PHP 배열과 XML 간의 변환 예제에 대한 자세한 설명

怪我咯
怪我咯원래의
2017-07-06 10:27:041281검색

이 글에서는 주로 PHP를 사용하여 배열과 XML 간의 변환을 처리하는 방법을 소개합니다. PHP의 XML을 배열로 변환하는 방법과 PHP의 배열을 XML로 변환하는 방법을 자세히 소개합니다.

개발 중에 있습니다. 특히 인터페이스 개발을 처리할 때 배열과 XML 간의 변환이 자주 발생합니다. 예를 들어 다른 클라이언트는 XML 형식의 데이터를 서버에 게시하고 서버의 프로그램은 이를 수신하는 역할도 합니다. 데이터 테이블 데이터를 XML 형식으로 타사 애플리케이션에 제공합니다.
이 기사에서는 PHP를 사용하여 배열과 XML 간의 변환을 처리하는 방법을 간략하게 소개합니다.

소스 코드 다운로드: PHP 배열과 XML

PHP 사이의 변환은 배열을 XML로 변환합니다
PHP는 배열을 xml 형식으로 변환할 수 있습니다. 간단한 방법은 배열을 트래버스하고 변환하는 것입니다. array's key/ 값은 xml 노드로 변환된 후 다음과 같이 echo가 직접 출력됩니다.

function arrayToXml($arr){ 
$xml = "<root>"; 
foreach ($arr as $key=>$val){ 
if(is_array($val)){ 
$xml.="<".$key.">".arrayToXml($val)."</".$key.">"; 
}else{ 
$xml.="<".$key.">".$val."</".$key.">"; 
} 
} 
$xml.="</root>"; 
return $xml; 
}

테스트해 본 결과, 이것이 가장 간단하고 빠르며 대부분 배열을 지원하고 한자가 깨져지지 않습니다.
또 다른 방법은 DOMDocument을 사용하여 xml 구조를 생성하는 것입니다.

function arrayToXml($arr,$dom=0,$item=0){ 
if (!$dom){ 
$dom = new DOMDocument("1.0"); 
} 
if(!$item){ 
$item = $dom->createElement("root"); 
$dom->appendChild($item); 
} 
foreach ($arr as $key=>$val){ 
$itemx = $dom->createElement(is_string($key)?$key:"item"); 
$item->appendChild($itemx); 
if (!is_array($val)){ 
$text = $dom->createTextNode($val); 
$itemx->appendChild($text); 

}else { 
arrayToXml($val,$dom,$itemx); 
} 
} 
return $dom->saveXML(); 
}

배열을 xml로 변환할 수도 있고 다차원 배열을 지원하며 생성된 xml 중국어는 왜곡되지 않습니다.

PHP는 XML을 배열로 변환합니다
인터페이스 개발을 하다 보면 일반적인 WeChat 인터페이스, Alipay 인터페이스 등의 인터페이스에서 메시지 보내기커뮤니케이션과 같은 데이터를 다른 사람이 제공하는 경우가 많습니다. xml 형식이므로 먼저 이 xml 데이터를 가져오는 방법을 찾은 다음 이를 배열로 변환합니다.
다음과 같은 XML을 얻었다고 가정해 보겠습니다.

 <root> 

<user>

月光光abcd</user> 

<pvs>13002</pvs>

 <ips> 

<baidu_ip>1200</baidu_ip>

 <google_ip>1829</google_ip>

 </ips> 

<date>2016-06-01</date>

 </root>

simplexml_load_string() 구문 분석을 통해 xml 데이터를 읽은 다음 먼저 json 형식으로 변환한 다음 배열로 변환합니다.

 function xmlToArray($xml){ 

 //禁止引用外部xml实体 

libxml_disable_entity_loader(true); 

$xmlstring = simplexml_load_string($xml, &#39;SimpleXMLElement&#39;, LIBXML_NOCDATA); 

$val = json_decode(json_encode($xmlstring),true); 

return $val; 

}

xmlToArray()를 호출하여 다음 결과를 얻습니다.


배열을 얻은 후 데이터에 대해 다양한 처리를 수행할 수 있습니다.

위 내용은 PHP 배열과 XML 간의 변환 예제에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.