수업 ArrayToXML
{
/ **
* XML 문서로의 변환을위한 주요 기능.
* 다중 차원 배열에 전달하고이 recrusively 통해 루프 및 XML 문서를 만듭니다.
*
* @ PARAM 배열 $ data라는
* @ PARAM 문자열 $ rootNodeName - defaultsto 데이터 - 당신이 루트 노드가되고 싶은.
* @ PARAM의 SimpleXMLElement $ XML은 -에만 반복적으로 사용해야합니다
* @ 반환 문자열이 XML
* /
공공 정적 기능 toXml (= '데이터', $ XML = null이 $ data라는, $ rootNodeName)
{
만약, 그렇지 않다면 간단한 XML이 휘청를 throw로 / / 호환성 모드를 해제합니다.
IF (ini_get ( 'zend.ze1_compatibility_mode') == 1)
{
위해서는 ini_set ( 'zend.ze1_compatibility_mode', 0);
}
경우 ($ xml 형식 == NULL)
{
$ XML = simplexml_load_string ( "<XML 버전 = '1 0.0 '인코딩 ='UTF-8 '?> <$ rootNodeName />");
}
/ 데이터를 통해 / 루프 안으로 통과
foreach ($ 데이터로 $ 열쇠 => $ 값)
{
/ / 우리 xml 형식에는 숫자 키, 제발 없습니다!
IF (is_numeric ($ 키))
{
/ / 문자열 키를 만들 ...
$ 열쇠 = "unknownNode_". 키 (문자열) $;
}
/ / 아무것도 대체하지 알파 숫자
$ 열쇠 = preg_replace ( '/ [^ AZ] / i'를, ", $ 키);
/ / recrusively이 함수를 호출 나온 또 다른 배열이있다면
IF (is_array ($ 값))
{
$ 노드 = $ XML-> addChild ($ 키);
호출 / / recrusive.
ArrayToXML :: toXml ($ 값은 $ rootNodeName, $ 노드);
}
다른
{
/ / 단일 노드를 추가합니다.
$ 값 = 정보 htmlentities ($ 값);
$ XML-> addChild ($ 키, $ 값);
}
}
/ / 문자열로 다시 전달합니다. 또는 단순 XML 개체 당신이 원한다면!
$ 반환 XML을 -> asXML ();
}
}













































