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个变量的值。phpxml

解决方案 »

  1.   


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

  2.   

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

  3.   

    $i == 0
    foreach (glob("D:\\001\\1003\\*.xml") as $filename) {
        if ($i >3) break;
        读取$filename……
        $i++;
    }读取$filename 的部分参考 http://bbs.csdn.net/topics/390354196
    懒得写了
      

  4.   


    $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>";
    }给分来!!!!
      

  5.   

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

  6.   

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