服务器端怎么实现以xml格式返回数据 用php脚本写的服务器这边,想返回给客户端数据时用xml格式,哪位大哥大姐指导下 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用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 $contentfclose($file); 打错了$file=fopen("x.xml", "r"); $content=fread($file,filesize(x.xml)); echo $content fclose($file);要不看php手册里的fread函数 以下内容转自: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格式的数据了。 太感谢了您了,顺便问下:我这边有个客户端和真实服务器交互的包,抓包看的,服务器回复的就是一个http头和一个xml。现在我自己用php写模拟服务器的功能,是不是回复和抓包的那个xml一样,客户端就能显示了,就是说我本身服务器要不要对xml做什么 去看看 xml-rpc 或者 soap 你只要把xml的内容echo就行了包头都是由apache自动发的。不用你管。 你可以这么测试:写一个php文件。<?phpecho "test";?>然后浏览器访问这个页面,抓包。看看有些什么数据就明白了。 把内容的输出格式改一下:header("Content-Type:text/xml;charset=utf-8"); 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; 这个写法不行啊 求大虾推荐几本PHP入门书籍 求教为什么我的代码无法写入数据库 svn,merge分支失败,出现树冲突 window.captureEvents() 有啥用? 关于smarty的问题 正则匹配任意字母但不包括... 好不容易找到一篇好文章 居然不可以保存 高手来接分啊................. 请教怎样用php在浏览器中图形显示数据库中数据 如何用Javascript提交PHP变量? 一个很奇怪的session 问题 php安装问题 列表菜单传值
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);
$file=fopen("x.xml", "r");
$content=fread($file,filesize(x.xml));
echo $content
fclose($file);要不看php手册里的fread函数
以下内容转自: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格式的数据了。
现在我自己用php写模拟服务器的功能,是不是回复和抓包的那个xml一样,客户端就能显示了,就是说我本身服务器要不要对xml做什么
包头都是由apache自动发的。不用你管。
写一个php文件。
<?php
echo "test";
?>
然后浏览器访问这个页面,抓包。看看有些什么数据就明白了。
<?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; 这个写法不行啊