배열과 XML 간 변환을 위한 PHP 처리 예제 코드

怪我咯
풀어 주다: 2017-07-11 16:37:44
원래의
1770명이 탐색했습니다.

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

PHP는 배열을 XML로 변환합니다
PHP는 배열을 xml 형식으로 변환할 수 있습니다. 간단한 방법은 배열을 트래버스한 다음 배열의 키/값을 xml 노드로 변환한 다음 출력을 직접 에코하는 것입니다. as:

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()를 호출하여 다음 결과를 얻습니다.


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

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿