Heim  >  Artikel  >  Backend-Entwicklung  >  PHP遍历指定文件夹内的XML资料,100分啊100分

PHP遍历指定文件夹内的XML资料,100分啊100分

WBOY
WBOYOriginal
2016-06-13 11:13:52969Durchsuche

PHP遍历指定文件夹内的XML文件,100分啊,100分。
XML文件格式为:

<br /><?xml version="1.0" encoding="UTF-8"?><br /><template><br /><title><![CDATA[《克鲁德一家》预告]]></title> <br />  <image>130112001.jpg</image> <br />  <intro><![CDATA[《克鲁德一家》预告]]></intro> <br />  <mediapath>130112001.3gp</mediapath><br /></template><br />

一个XML文件相当于一条数据。

由于我初学PHP不久,求翻译下面的代码。。。
<br /><br />指定文件夹目录路径:D:\001\1003(此文件夹下有多个XML文件)<br /><br />遍历开始(读取4个XML文件,满足后停止遍历)<br /><br />读取一个XML文件内容<br /><br />$title=XML内的title<br /><br />$img=XML内的image<br /><br />$path=此XML文件的路径<br /><br />把这3个变量输出到页面<br /><br />遍历结束<br /><br />

等于读取了4条数据,每条数据包含title,img,path这3个变量的值。

php xml
------解决方案--------------------
翻手册,opendir遍历,DOMDocument解析XML
------解决方案--------------------
$i == 0<br />foreach (glob("D:\\001\\1003\\*.xml") as $filename) {<br />    if ($i >3) break;<br />    读取$filename……<br />    $i++;<br />}


读取$filename 的部分参考 http://bbs.csdn.net/topics/390354196
懒得写了
------解决方案--------------------
<br />$dir='D:\001\1003';<br />function readxml($dir,&$arr){<br />	if($handle=opendir($dir)){<br />		while(false!==($file=readdir($handle))){<br />			$sub_dir=$dir.DIRECTORY_SEPARATOR.$file;<br />			if(is_dir($sub_dir)&&$file!='.'&&$file!='..'){<br />				readxml($sub_dir,$arr);<br />			}elseif(preg_match('/\.xml$/',$file)){<br />				if(count($arr)>3){<br />					return false;<br />				}<br />				$arr[]=$sub_dir;<br />			}<br />		}<br />	}<br />}<br />readxml($dir,$arr);<br />foreach($arr as $x){<br />	$doc = new DOMDocument();<br />	$doc->load ($x);<br />	$tmp =  $doc->getElementsByTagName('template');<br />	foreach($tmp as $t){<br />		Echo 'title:'.$t->getElementsByTagName('title')->item(0)->nodeValue."<br>";<br />		Echo 'image:'.$t->getElementsByTagName('image')->item(0)->nodeValue."<br>";<br />		Echo 'intro:'.$t->getElementsByTagName('intro')->item(0)->nodeValue."<br>";<br />		Echo 'mediapath:'.$t->getElementsByTagName('mediapath')->item(0)->nodeValue."<br>";<br />	}<br />	Echo "<p>--------------------------------------</p>";<br />}<br />

给分来!!!!
------解决方案--------------------
还真是清零了,晕
foreach (glob("D:\\001\\1003\\*.xml") as $key => $filename)
用$key就可以判断读了四个停止遍历了,不需要$i

引用:
PHP code?123456$i == 0foreach (glob("D:\\001\\1003\\*.xml") as $filename) {    if ($i >3) break;    读取$filename……    $i++;}

读取$filename 的部分参考 http://bbs.csdn.net/topics/390354196
懒得写了……
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn