国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > XML > 正文

將平行結構XML轉化為樹形XML結構,遞歸

2020-03-22 20:28:02
字體:
來源:轉載
供稿:網友
  • 轉換的PHP代碼如下
    header("Content-type:text/xml;charset=utf-8");	function getRootPath(){		$biasNum = substr_count($_SERVER['PHP_SELF'], '/'); //用'/'分割當前路徑字符串,并計算分割后的字符串數量		$relativePath = './'; //初始化變量$relativePath為'./'		for ($i = 0; $i < ($biasNum - 1); $i ++) { //循環添加'../'    		$relativePath .= '../';		}		return $relativePath;	}		function display_children($pid,$level,$root,$temDom){			$targetRoot=$temDom->getElementsByTagName('root')->item(0);   			foreach ($root->childNodes as $sons){   				$sonID=str_replace('n', '', $sons->nodeName);   				$sonPid=$sons->getElementsByTagName('pid')->item(0)->nodeValue;   				$sonName=$sons->getElementsByTagName('name')->item(0)->nodeValue;   				$sonExplain=$sons->getElementsByTagName('explain')->item(0)->nodeValue;   				if($sonPid==$pid){	   				//echo str_repeat('+', $level).$sonName.' and '.$sonID.'<br/>';	   				if($level==1){	   					$level1=$temDom->createElement('level1');	   					$level1->setAttribute('aid', $sonID);	   					$level1->setAttribute('name', $sonName);	   					$level1->setAttribute('explain', $sonExplain);	   					$targetRoot->appendChild($level1);	   					//$level1->getAttribute('');	   					   				}else{	   					$parsentLevel=$temDom->getElementsByTagName('level'.($level-1));	   					foreach ($parsentLevel as $levels){	   						if($levels->getAttribute('aid')==$sonPid){	   							$sonLevel=$temDom->createElement('level'.$level);	   							$sonLevel->setAttribute('aid', $sonID);			   					$sonLevel->setAttribute('name', $sonName);			   					$sonLevel->setAttribute('explain', $sonExplain);	   							$levels->appendChild($sonLevel);	   						}	   					}	   						   				}	   				display_children($sonID,$level+1,$root,$temDom);   				}   			}	} 	 	$dom=new DOMDocument('1.0','utf-8');   		$dom->load(getRootPath().'mydata/area/index/main.xml');   		$root=$dom->getElementsByTagName('root')->item(0);   		$temDom=new DOMDocument('1.0','utf-8');   		$root1=$temDom->createElement('root');   		$temDom->appendChild($root1);   		//$tartRoot=$temDom->getElementsByTagName('root')->item(0);   		display_children(0, 1, $root,&$temDom);   		echo $temDom->saveXML();   		   	

    轉換后的樹形結構如下


    <?xml version="1.0" encoding="utf-8"?><root><level1 aid="42" name="新加坡" explain="花園國度"/><level1 aid="41" name="俄羅斯" explain="北極熊"/><level1 aid="40" name="韓國" explain="高麗棒子"/><level1 aid="39" name="日本" explain="小日本"/><level1 aid="38" name="美國" explain="霸權主義國家"/><level1 aid="37" name="中國" explain="偉大的國家"><level2 aid="66" name="河南省" explain=""><level3 aid="80" name="開封" explain="少林所在地"/><level3 aid="79" name="洛陽" explain="歷史名城"/><level3 aid="78" name="鄭州市" explain="河南的省會"><level4 aid="81" name="測試區" explain=""/></level3></level2><level2 aid="55" name="貴州省" explain=""/><level2 aid="54" name="海南省" explain=""/><level2 aid="53" name="西藏自治區" explain=""/><level2 aid="52" name="內蒙古自治區" explain=""/><level2 aid="51" name="寧夏回族自治區" explain=""/><level2 aid="50" name="甘肅省" explain=""/><level2 aid="49" name="云南省" explain=""/><level2 aid="48" name="廣西壯族自治區" explain=""/><level2 aid="47" name="廣東省" explain=""/><level2 aid="46" name="陜西省" explain=""/><level2 aid="45" name="山西省" explain=""/><level2 aid="44" name="湖南省" explain=""/><level2 aid="43" name="湖北省" explain=""><level3 aid="70" name="棗陽市" explain=""/><level3 aid="61" name="孝感市" explain=""/><level3 aid="60" name="十堰市" explain=""/><level3 aid="59" name="荊州市" explain=""/><level3 aid="58" name="鄂州市" explain=""/><level3 aid="57" name="襄陽市" explain=""><level4 aid="68" name="襄城區" explain=""/><level4 aid="67" name="谷城縣" explain=""/></level3><level3 aid="56" name="武漢市" explain=""><level4 aid="86" name="徐東區" explain="我去過"/><level4 aid="85" name="蔡甸區" explain=""/><level4 aid="84" name="江漢區" explain=""/><level4 aid="83" name="江岸區" explain=""/><level4 aid="82" name="青山區" explain=""/><level4 aid="69" name="洪山區" explain=""/><level4 aid="63" name="江漢區" explain=""/></level3></level2></level1></root>

    XML平行結構如下

    <?xml version="1.0" encoding="utf-8"?><root><n86><name><![CDATA[徐東區]]></name><pid><![CDATA[56]]></pid><explain><![CDATA[我去過]]></explain></n86><n85><name><![CDATA[蔡甸區]]></name><pid><![CDATA[56]]></pid><explain><![CDATA[]]></explain></n85><n84><name><![CDATA[江漢區]]></name><pid><![CDATA[56]]></pid><explain><![CDATA[]]></explain></n84><n83><name><![CDATA[江岸區]]></name><pid><![CDATA[56]]></pid><explain><![CDATA[]]></explain></n83><n82><name><![CDATA[青山區]]></name><pid><![CDATA[56]]></pid><explain><![CDATA[]]></explain></n82><n81><name><![CDATA[測試區]]></name><pid><![CDATA[78]]></pid><explain><![CDATA[]]></explain></n81><n80><name><![CDATA[開封]]></name><pid><![CDATA[66]]></pid><explain><![CDATA[少林所在地]]></explain></n80><n79><name><![CDATA[洛陽]]></name><pid><![CDATA[66]]></pid><explain><![CDATA[歷史名城]]></explain></n79><n78><name><![CDATA[鄭州市]]></name><pid><![CDATA[66]]></pid><explain><![CDATA[河南的省會]]></explain></n78><n70><name><![CDATA[棗陽市]]></name><pid><![CDATA[43]]></pid><explain><![CDATA[]]></explain></n70><n69><name><![CDATA[洪山區]]></name><pid><![CDATA[56]]></pid><explain><![CDATA[]]></explain></n69><n68><name><![CDATA[襄城區]]></name><pid><![CDATA[57]]></pid><explain><![CDATA[]]></explain></n68><n67><name><![CDATA[谷城縣]]></name><pid><![CDATA[57]]></pid><explain><![CDATA[]]></explain></n67><n66><name><![CDATA[河南省]]></name><pid><![CDATA[37]]></pid><explain><![CDATA[]]></explain></n66><n63><name><![CDATA[江漢區]]></name><pid><![CDATA[56]]></pid><explain><![CDATA[]]></explain></n63><n61><name><![CDATA[孝感市]]></name><pid><![CDATA[43]]></pid><explain><![CDATA[]]></explain></n61><n60><name><![CDATA[十堰市]]></name><pid><![CDATA[43]]></pid><explain><![CDATA[]]></explain></n60><n59><name><![CDATA[荊州市]]></name><pid><![CDATA[43]]></pid><explain><![CDATA[]]></explain></n59><n58><name><![CDATA[鄂州市]]></name><pid><![CDATA[43]]></pid><explain><![CDATA[]]></explain></n58><n57><name><![CDATA[襄陽市]]></name><pid><![CDATA[43]]></pid><explain><![CDATA[]]></explain></n57><n56><name><![CDATA[武漢市]]></name><pid><![CDATA[43]]></pid><explain><![CDATA[]]></explain></n56><n55><name><![CDATA[貴州省]]></name><pid><![CDATA[37]]></pid><explain><![CDATA[]]></explain></n55><n54><name><![CDATA[海南省]]></name><pid><![CDATA[37]]></pid><explain><![CDATA[]]></explain></n54><n53><name><![CDATA[西藏自治區]]></name><pid><![CDATA[37]]></pid><explain><![CDATA[]]></explain></n53><n52><name><![CDATA[內蒙古自治區]]></name><pid><![CDATA[37]]></pid><explain><![CDATA[]]></explain></n52><n51><name><![CDATA[寧夏回族自治區]]></name><pid><![CDATA[37]]></pid><explain><![CDATA[]]></explain></n51><n50><name><![CDATA[甘肅省]]></name><pid><![CDATA[37]]></pid><explain><![CDATA[]]></explain></n50><n49><name><![CDATA[云南省]]></name><pid><![CDATA[37]]></pid><explain><![CDATA[]]></explain></n49><n48><name><![CDATA[廣西壯族自治區]]></name><pid><![CDATA[37]]></pid><explain><![CDATA[]]></explain></n48><n47><name><![CDATA[廣東省]]></name><pid><![CDATA[37]]></pid><explain><![CDATA[]]></explain></n47><n46><name><![CDATA[陜西省]]></name><pid><![CDATA[37]]></pid><explain><![CDATA[]]></explain></n46><n45><name><![CDATA[山西省]]></name><pid><![CDATA[37]]></pid><explain><![CDATA[]]></explain></n45><n44><name><![CDATA[湖南省]]></name><pid><![CDATA[37]]></pid><explain><![CDATA[]]></explain></n44><n43><name><![CDATA[湖北省]]></name><pid><![CDATA[37]]></pid><explain><![CDATA[]]></explain></n43><n42><name><![CDATA[新加坡]]></name><pid><![CDATA[0]]></pid><explain><![CDATA[花園國度]]></explain></n42><n41><name><![CDATA[俄羅斯]]></name><pid><![CDATA[0]]></pid><explain><![CDATA[北極熊]]></explain></n41><n40><name><![CDATA[韓國]]></name><pid><![CDATA[0]]></pid><explain><![CDATA[高麗棒子]]></explain></n40><n39><name><![CDATA[日本]]></name><pid><![CDATA[0]]></pid><explain><![CDATA[小日本]]></explain></n39><n38><name><![CDATA[美國]]></name><pid><![CDATA[0]]></pid><explain><![CDATA[霸權主義國家]]></explain></n38><n37><name><![CDATA[中國]]></name><pid><![CDATA[0]]></pid><explain><![CDATA[偉大的國家]]></explain></n37></root> 

    優點支持無限極分類,但是訪問接口時返回XML樹形結構,更利于程序讀取!


    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 上一篇:DOM解析XML

    下一篇:返回列表

    發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 黎城县| 宣化县| 岳西县| 青铜峡市| 永济市| 民丰县| 贵德县| 临高县| 西贡区| 顺义区| 孙吴县| 垦利县| 六安市| 襄汾县| 河西区| 井冈山市| 阜宁县| 天长市| 永仁县| 阳城县| 曲靖市| 安徽省| 萨嘎县| 江孜县| 清水县| 花莲市| 洛宁县| 内黄县| 江源县| 新乡市| 平阴县| 怀宁县| 承德市| 广灵县| 黄大仙区| 密山市| 合水县| 宁安市| 五莲县| 图木舒克市| 合山市|