服务器端怎么实现以xml格式返回数据

wwhw2009 2009-11-30 02:14:50
用php脚本写的服务器这边,想返回给客户端数据时用xml格式,哪位大哥大姐指导下
...全文
240 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengyumanlou 2009-11-30
  • 打赏
  • 举报
回复
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; 这个写法不行啊
ly4885806 2009-11-30
  • 打赏
  • 举报
回复
把内容的输出格式改一下:

header("Content-Type:text/xml;charset=utf-8");
codeyell-com 2009-11-30
  • 打赏
  • 举报
回复
你可以这么测试:
写一个php文件。
<?php
echo "test";
?>
然后浏览器访问这个页面,抓包。看看有些什么数据就明白了。
codeyell-com 2009-11-30
  • 打赏
  • 举报
回复
你只要把xml的内容echo就行了
包头都是由apache自动发的。不用你管。
wwhw2009 2009-11-30
  • 打赏
  • 举报
回复
能不能指点下,看了不太明白,没有实际服务器怎么弄的例子
letian003 2009-11-30
  • 打赏
  • 举报
回复
去看看 xml-rpc 或者 soap
wwhw2009 2009-11-30
  • 打赏
  • 举报
回复
太感谢了您了,顺便问下:我这边有个客户端和真实服务器交互的包,抓包看的,服务器回复的就是一个http头和一个xml。
现在我自己用php写模拟服务器的功能,是不是回复和抓包的那个xml一样,客户端就能显示了,就是说我本身服务器要不要对xml做什么
codeyell-com 2009-11-30
  • 打赏
  • 举报
回复

以下内容转自: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格式的数据了。
codeyell-com 2009-11-30
  • 打赏
  • 举报
回复
打错了
$file=fopen("x.xml", "r");
$content=fread($file,filesize(x.xml));
echo $content
fclose($file);

要不看php手册里的fread函数
codeyell-com 2009-11-30
  • 打赏
  • 举报
回复
用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);

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧