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

WBOY
Release: 2016-06-23 14:03:56
Original
1095 people have browsed it

XML文件格式为:

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

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

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

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


回复讨论(解决方案)

看到那个头像脑子一下子清零了……微臣告退……

看到那个头像脑子一下子清零了……微臣告退……

帮我解决下,马上就还头像。

$doc = new DOMDocument();$doc->load ("a.xml");$tmp =  $doc->getElementsByTagName('template');foreach($tmp as $t){	Echo 'title:'.$t->getElementsByTagName('title')->item(0)->nodeValue."<br>";	Echo 'image:'.$t->getElementsByTagName('image')->item(0)->nodeValue."<br>";	Echo 'intro:'.$t->getElementsByTagName('intro')->item(0)->nodeValue."<br>";	Echo 'mediapath:'.$t->getElementsByTagName('mediapath')->item(0)->nodeValue."<br>";}
Copy after login

翻手册,opendir遍历,DOMDocument解析XML

$i == 0foreach (glob("D:\\001\\1003\\*.xml") as $filename) {    if ($i >3) break;    读取$filename……    $i++;}
Copy after login


读取$filename 的部分参考 http://bbs.csdn.net/topics/390354196
懒得写了

呃,居然写了双等号……

$dir='D:\001\1003';function readxml($dir,&$arr){	if($handle=opendir($dir)){		while(false!==($file=readdir($handle))){			$sub_dir=$dir.DIRECTORY_SEPARATOR.$file;			if(is_dir($sub_dir)&&$file!='.'&&$file!='..'){				readxml($sub_dir,$arr);			}elseif(preg_match('/\.xml$/',$file)){				if(count($arr)>3){					return false;				}				$arr[]=$sub_dir;			}		}	}}readxml($dir,$arr);foreach($arr as $x){	$doc = new DOMDocument();	$doc->load ($x);	$tmp =  $doc->getElementsByTagName('template');	foreach($tmp as $t){		Echo 'title:'.$t->getElementsByTagName('title')->item(0)->nodeValue."<br>";		Echo 'image:'.$t->getElementsByTagName('image')->item(0)->nodeValue."<br>";		Echo 'intro:'.$t->getElementsByTagName('intro')->item(0)->nodeValue."<br>";		Echo 'mediapath:'.$t->getElementsByTagName('mediapath')->item(0)->nodeValue."<br>";	}	Echo "<p>--------------------------------------</p>";}
Copy after login

给分来!!!!

还真是清零了,晕
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
懒得写了……

PHP code?1234567891011121314151617181920212223242526272829$dir='D:\001\1003';function readxml($dir,&$arr){    if($handle=opendir($dir)){        while(false!==($file=readdir($handle)))……
谢谢了兄弟,有空聊来这给这段代码加几句注释,我好学习,呵呵。

这里也有一个PHP遍历文件夹的函数
你可以参考一下: http://www.bacysoft.cn/thread-77-1-1.html

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template