PHP遍历指定文件夹内的XML文件,100分啊,100分。
XML文件格式为:
<br /><?xml version="1.0" encoding="UTF-8"?><br /><br /><title></title> <br /> 130112001.jpg <br /> <br /> 130112001.3gp<br /><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.gaodaima.com/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