日期:2014-05-17  浏览次数:20505 次

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

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

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

由于我初学PHP不久,求翻译下面的代码。。。


指定文件夹目录路径:D:\001\1003(此文件夹下有多个XML文件)

遍历开始(读取4个XML文件,满足后停止遍历)

读取一个XML文件内容

$title=XML内的title

$img=XML内的image

$path=此XML文件的路径

把这3个变量输出到页面

遍历结束


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

php xml

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


读取$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>";
}

给分来!!!!
------解决方案--------------------
还真是清零了,晕
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
懒得写了……