客户端从服务器端获取xml字符 然后解析废话不多说 直接上代码
  $file_handle = fopen("applist.xml", "r");
while (!feof($file_handle)) {
$line = fgets($file_handle);
//$strfile=$strfile+$line;
echo $line;
}但是没有显示任何记录  如果 applist.xml 换成txt格式及可以读取了 
是php不能读取xml里面的标记符么?
怎么已txt格式读取xml呢?
求解?

解决方案 »

  1.   

    你的XML文件格式可能不对  下载个Altova XMLSpy先看下xml文件格式正确不  我这边可以读出数据
      

  2.   

    以前看到过个函数能把xml读取转换成php的数组,数组也能转换成xml,php的数组下标可以用单词的么
      

  3.   

    xml 格式是正确的, 以前是用java写的, 服务器端返回了, 客户端可以正确的解析 说明xml格式是正确的。
      

  4.   

    ob_start();
    ob_get_contents();
    fopen();
    fread($handler,"r");
    fclose();
    ob_end_clean();
      

  5.   

    本帖最后由 xuzuning 于 2010-08-22 16:02:19 编辑
      

  6.   

    xml内容如下<?xml version="1.0" encoding="UTF-8"?>
    <mmhand>
    <applist>
    <app>
    <appname>
    <![CDATA[firewall for blackberry]]>
    </appname>
    <version>
    <![CDATA[1.1]]>
    </version>
    <modlename>
    <![CDATA[BBFirewall]]>
    </modlename>
    <memo>
    <![CDATA[it can block the call and email]]>
    </memo>
    <link>
    <![CDATA[http://do.jhost.cn/nengge/download]]>
    </link>
    <applicable-models>
    <models>
    <model-type><![CDATA[83 85 88  os 4.5 4.6 5.0]]></model-type>
    <jad-url><![CDATA[/firewall/1/BBFirewall.jad]]></jad-url>
    </models>
    <models>
    <model-type><![CDATA[89 96 97 98 os 4.6 5.0]]></model-type>
    <jad-url><![CDATA[/firewall/2/BBFirewall.jad]]></jad-url>
    </models>
    <models>
    <model-type><![CDATA[9000 0s 4.6 5.0]]></model-type>
    <jad-url><![CDATA[/firewall/3/BBFirewall.jad]]></jad-url>
    </models>
    <models>
    <model-type><![CDATA[9500 0s 4.7 5.0]]></model-type>
    <jad-url><![CDATA[/firewall/4/BBFirewall.jad]]></jad-url>
    </models>
    </applicable-models>
    </app>
    <app>
    <appname>
    <![CDATA[applock for blackberry]]>
    </appname>
    <version>
    <![CDATA[1.1]]>
    </version>
    <modlename>
    <![CDATA[BBLock]]>
    </modlename>
    <memo>
    <![CDATA[it can lock the app which you want]]>
    </memo>
    <link>
    <![CDATA[http://do.jhost.cn/nengge/download]]>
    </link>
    <applicable-models>
    <models>
    <model-type><![CDATA[83 85 88  os 4.5 4.6 5.0]]></model-type>
    <jad-url><![CDATA[/applock/1/BBLock.jad]]></jad-url>
    </models>
    <models>
    <model-type><![CDATA[89 96 97 98 os 4.6 5.0]]></model-type>
    <jad-url><![CDATA[/applock/2/BBLock.jad]]></jad-url>
    </models>
    <models>
    <model-type><![CDATA[9000 0s 4.6 5.0]]></model-type>
    <jad-url><![CDATA[/applock/3/BBLock.jad]]></jad-url>
    </models>
    <models>
    <model-type><![CDATA[9500 0s 4.7 5.0]]></model-type>
    <jad-url><![CDATA[/applock/4/BBLock.jad]]></jad-url>
    </models>
    </applicable-models>
    </app>
    </applist>
    </mmhand>
      

  7.   

    程序修改如下,就可以显示出来了
    <?php
    $file_handle = fopen("applist.xml", "r");
    header("Content-type: application/xml");
    while (!feof($file_handle)) {
        $line = fgets($file_handle);
    //$strfile=$strfile+$line;
        echo $line;
    }
    ?>
    这个不是因为文件读不出来,而是没有告诉浏览器用xml来解析,所以浏览器没有显示。
    如果不加header,你用命令行执行php name.php可以看到输出。
      

  8.   

    楼上的,我试过了,不要 header那行,可以输出xml文件的内容,包括标签。。
      

  9.   

     $file_handle = fopen("applist.xml", "r");
     $file_content=fread($file_handle,filesize("applist.xml"));
     echo $file_content;
      

  10.   

    没有问题,可以显示的。可能是你的浏览器关闭了 xml 显示功能