數組轉xml

來源:互聯網
上載者:User
<?phpdefine("XML_FLAG_ATTR",      "attr_");define("XML_FLAG_CDATA_VAL", "cdata_val");define("XML_FLAG_NORM_VAL",  "norm_val");define("XML_FLAG_CONTENT",   "sub_cont");final class util_xml2 { function array2Xml($p_arrData, $p_strRootNodeName = "data", $p_pXml = NUll, $p_pRoot = NULL){if (NUll === $p_pXml){$p_pXml = new DOMDocument("1.0", 'utf-8');$p_pRoot = $p_pXml->appendChild($p_pXml->createElement($p_strRootNodeName));}foreach ($p_arrData as $mxKey => $mxValue){if (is_numeric($mxKey) && is_array($mxValue)){foreach ($mxValue as $mxSubKey => $mxSubValue){if (is_array($mxSubValue)){$pListNode = $p_pRoot->appendChild($p_pXml->createElement($mxSubKey));foreach ($mxSubValue as $mxThKey => $mxThValie){if (is_string($mxThKey)){if (XML_FLAG_CDATA_VAL === $mxThKey){$pListNode->appendChild($p_pXml->createCDATASection($mxThValie));}elseif (XML_FLAG_NORM_VAL === $mxThKey){$pListNode->appendChild($p_pXml->createTextNode($mxThValie));}elseif (strpos($mxThKey, XML_FLAG_ATTR) >-1){$pListNode->appendChild($p_pXml->createAttribute(substr($mxThKey, strlen(XML_FLAG_ATTR))))->appendChild($p_pXml->createTextNode($mxThValie));}elseif (XML_FLAG_CONTENT === $mxThKey){if (is_array($mxThValie)){$this->array2Xml($mxThValie, $p_strRootNodeName, $p_pXml, $pListNode);}}else{$pNode = $pListNode->appendChild($p_pXml->createElement($mxThKey));$this->array2Xml($mxThValie, $p_strRootNodeName, $p_pXml, $pNode);}}}}}}else{$mxKey = preg_replace('/[^a-z0-9_]/i', '', $mxKey);if (XML_FLAG_CDATA_VAL === $mxKey){$p_pRoot->appendChild($p_pXml->createCDATASection($mxValue));}elseif (XML_FLAG_NORM_VAL === $mxKey){$p_pRoot->appendChild($p_pXml->createTextNode($mxValue));}elseif (strpos($mxKey, XML_FLAG_ATTR) > -1){$p_pRoot->appendChild($p_pXml->createAttribute(substr($mxKey, strlen(XML_FLAG_ATTR))))->appendChild($p_pXml->createTextNode($mxValue));}elseif (XML_FLAG_CONTENT === $mxKey){if (is_array($mxValue)){$this->array2Xml($mxValue, $p_strRootNodeName, $p_pXml, $p_pRoot);}}else{if (is_array($mxValue)){$pNode = $p_pRoot->appendChild($p_pXml->createElement($mxKey));$this->array2Xml($mxValue, $p_strRootNodeName, $p_pXml, $pNode);}else{$p_pRoot->appendChild($p_pXml->createElement($mxKey, htmlentities(trim($mxValue))));}}}}$strXml = $p_pXml->saveXML();return $strXml;}}//        $arrReturn = array();//$arrReturn["r"] = "1";//$arrReturn["a"] = "";//$arrReturn["d"] = "";////for ($i = 0; $i < 5; $i++)//{//$arrDelFiles = array();//$arrDelFiles[XML_FLAG_ATTR . "type"] = $i;//$arrDelFiles[XML_FLAG_ATTR . "code"] = "1,2,3,4,5";//$arrReturn["d"][]["file"] = $arrDelFiles;//$arrAddPath = array();//$arrAddPath[XML_FLAG_ATTR . "type"] = $i;//$arrAddPath[XML_FLAG_CDATA_VAL]     = "path_111ξ∝ξpath_222ξ∝ξpath_333ξ∝ξpath_444ξ∝ξpath_555";////$arrReturn["a"][]["path"] = $arrAddPath;//}//print_r($arrReturn);$arr=array( 't1'=>array('uid'=>'1001', 'name'=>'jack', 'tel'=>array('uid'=>'1001','name'=>'jack')),            't2'=>array('uid'=>'1002', 'name'=>'mark', 'tel'=>'1233423'), 't3'=>array('uid'=>'1003', 'name'=>'annn', 'tel'=>'1233423'),'t4'=>array('uid'=>'1004', 'name'=>'cccc', 'tel'=>'1232233'), 'attr_id'=>'1001', 'attr_name'=>'mark');header('Content-type:text/xml;charset="utf-8"');$pXml=new util_xml2();echo $pXml->array2Xml($arr);?>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.