ホームページ  >  記事  >  バックエンド開発  >  PHP遍历指定文件夹内的XML资料,100分啊100分

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

WBOY
WBOYオリジナル
2016-06-13 11:13:52970ブラウズ

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
懒得写了……
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。