用php脚本写的服务器这边,想返回给客户端数据时用xml格式,哪位大哥大姐指导下

解决方案 »

  1.   

    用php生成xml文件
    http://www.google.cn/search?hl=zh-CN&q=php+%E7%94%9F%E6%88%90+xml&btnG=Google+%E6%90%9C%E7%B4%A2
    然后把xml文件的内容echo就行了。
    $file=foptn("x.xml", r);
    $content=fread($file);
    echo $content
    fclose($file);
      

  2.   

    打错了
    $file=fopen("x.xml", "r"); 
    $content=fread($file,filesize(x.xml)); 
    echo $content 
    fclose($file);要不看php手册里的fread函数
      

  3.   


    以下内容转自:http://blog.house100.cn/index.php/uid-5-action-viewspace-itemid-746
    无聊的时间就整理了下,然后写了一遍。这是一个简单的例子,做个留恋,也可以帮助初学者<?
    #code by coder_apex 2007-6-15
    #自动生成一个如下的XML文件
    #
    #       <?xml version="1.0" encoding="gb2312" ? > 
    #         - <root>
    #             - <info value="adevy">
    #                <name>adevy001</name> 
    #                <sex>男</sex> 
    #               </info>
    #           </root>
      
    $doc=new DOMDocument("1.0","gb2312");  #声明文档类型
    $doc->formatOutput=true;               #设置可以输出操作#声明根节点,最好一个XML文件有个跟节点
    $root=$doc->createElement("root")    #创建节点对象实体  
    $root=$doc->appendChild($root);      #把节点添加进来
       
       # for($i=1;$i<100;$i++){  //循环生成节点,如果数据库调用出来就改这里
       
       $info=$doc->createElement("info");  #创建节点对象实体 
       $info=$root->appendChild($info);    #把节点添加到root节点的子节点        $name_value=$doc->createAttribute("value");  #创建节点属性对象实体  
            $name_value=$info->appendChild($name_value);  #把属性添加到节点info中
            
            $name=$doc->createElement("name");    #创建节点对象实体        
            $name=$info->appendChild($name);
            
            $sex=$doc->createElement("sex");
            $sex=$info->appendChild($sex);
            
            $name->appendChild($doc->createTextNode("adevy001"));  #createTextNode创建内容的子节点,然后把内容添加到节点中来
            $name_value->appendChild($doc->createTextNode("adevy"));
            $sex->appendChild($doc->createTextNode(iconv("GB2312","UTF-8","男"))); #注意要转码对于中文,因为XML默认为UTF-8格式
      # }    
       $doc->save("info.xml"); #保存路径
       echo "生成成功。";?>以下内容是我写的
    整个流程就是:生成XML再读里面的数据,返回客户端,然后删除生成的XML文件。这样的话效率比较低。
    你可以自己组织XML数据,像这样的:
    $xmlData="<root><node name="node">$value</node></root>";
    echo $xmlData;
    返回的就是XML格式的数据了。
      

  4.   

    太感谢了您了,顺便问下:我这边有个客户端和真实服务器交互的包,抓包看的,服务器回复的就是一个http头和一个xml。
    现在我自己用php写模拟服务器的功能,是不是回复和抓包的那个xml一样,客户端就能显示了,就是说我本身服务器要不要对xml做什么
      

  5.   

    去看看 xml-rpc 或者 soap 
      

  6.   

    你只要把xml的内容echo就行了
    包头都是由apache自动发的。不用你管。
      

  7.   

    你可以这么测试:
    写一个php文件。
    <?php
    echo "test";
    ?>
    然后浏览器访问这个页面,抓包。看看有些什么数据就明白了。
      

  8.   

    把内容的输出格式改一下:header("Content-Type:text/xml;charset=utf-8");
      

  9.   

    cps.xml 
    <?xml version="1.0" encoding="gb2312" ?> 
    <cps> 
      <ad> 
      <id>1 </id> 
      <desc>简介 </desc> 
      <name>12 </name> 
    </ad> 
    <ad> 
      <id>2 </id> 
      <name>服务 </name> 
      <desc>推广 </desc> 
    </ad> 
      .... 
    </cps> 
              怎么取出id 中最大的值,因为我要插数据,取最大id+1才可以 
                      $dom = new DOMDocument; 
    $dom->load('cps.xml'); 
    $xpath = new DOMXPath($dom); 
    $person = $xpath->query('/cps/cps/ad'); 
                            foreach($ids as $e){ 
                echo $id = $e->firstChild->nodeValue;  这个写法不行啊