php+xml 问题,在线等

zgycsmb 2009-07-10 10:44:25
在php页面中,通过下面的sql
select * from base_stories order by dateposted desc limit 100;
可以得到 表中100记录的字段:标题,内容 等.
现要把这些标题,内容等放到一个news.xml中去:
news.xml 如下:
<?xml version="1.0" encoding="GB2312" ?>
<document>
<webSite>http://899.cn/</webSite>
<webMaster>350038760@qq.com</webMaster>
<updatePeri>15</updatePeri>

<item>
<link>http://899.cn/xinwen/1392.html</link>
<title>房价急升质量存疑 迷样楼市如何智慧买房?</title>
<text>楼盘</text>
<image>../upload/newsPic/pic/20090710093930385049975.jpg</image>
<category>全国地产新闻</category>
<pubDate>2009-07-10 09:55:20</pubDate>
</item>

</document>
其中 一个 item为一条新闻的有关内容,item中的link title text image category pubDate
都可从 base_stories表中取到值,
100条记录,就是要在此xml中生成100个item,
请问这功能怎么实现,

...全文
119 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgycsmb 2009-07-13
  • 打赏
  • 举报
回复
现可以写了,
是权限问题,
谢谢大家
残剑无弦 2009-07-11
  • 打赏
  • 举报
回复
这很简单 关键是用到了文件写函数 file_put_contents
如果不能用这个函数 可以用下面的函数代替

$file="test.xml";
$fp=fopen($file,"w");
$date="XML字符串";
fputs($fp,$date);
fclose($fp);
zf213 2009-07-11
  • 打赏
  • 举报
回复
zgycsmb 2009-07-10
  • 打赏
  • 举报
回复
九楼的,news.xml文件一直是空的哦,
还有,我用你写的代码测试时,输出时,只有内容,数据库中查出来的内容,没有 xml的样式,
zgycsmb 2009-07-10
  • 打赏
  • 举报
回复
回九楼,你的测试,在我电脑也 不行,news.xml就是空的,
我是把 getxml($data)放在 newsXml.php 中,此文件与news.xml同一目录
zf213 2009-07-10
  • 打赏
  • 举报
回复
下面是我的测试数据,你看看,能不能运行成功,我这是可以成功的。
<?php
$data = array('link'=>'1','title'=>'tt','text'=>'dd','image'=>'null','category'=>'test','pubDate'=>'ddddd');
function getxml($data) {
$XML = '<?xml version="1.0" encoding="GB2312" ?>';
$XML .= '<document>';
$XML .='<webSite>http://899.cn/ </webSite>';
$XML .='<webMaster>350038760@qq.com </webMaster>';
$XML .='<updatePeri>15 </updatePeri>';
foreach($data as $row){
$XML .=" <item>";
$XML .=" <link>".$row['link']." </link>";
$XML .=" <title>".$row['title']." </title>";
$XML .=" <text>".$row['text']." </text>";
$XML .=" <image>".$row['image']." </image>";
$XML .=" <category>".$row['category']." </category>";
$XML .=" <pubDate>".$row['pubDate']." </pubDate>";
$XML .=" </item>";
}
$XML .=' </document>';
return $XML;
}
$dd = getxml($data);
file_put_contents('news.xml', $dd);
?>
zgycsmb 2009-07-10
  • 打赏
  • 举报
回复
回 7 楼,还不是这个item,
应该是修改
$XML .=" <item>";
}
$XML .=' </document>';
这个<item>吧
zf213 2009-07-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zf213 的回复:]
如果想方便的话,可以直接使用file_put_content函数,如下:
<?php
$data = "数据源";
function getxml($data) {
$XML = ' <?xml version="1.0" encoding="GB2312" ?>';
$XML .= ' <document>';
$XML .=' <webSite>http://899.cn/ </webSite>';
$XML .=' <webMaster>350038760@qq.com </webMaster>';
$XML .=' <updatePeri>15 </updatePeri>';
foreach($data as $row){
$XML .=" <item>";
$XML .=" <link>"…
[/Quote]
<item>写错了,应该改成</item>
zgycsmb 2009-07-10
  • 打赏
  • 举报
回复
回 5楼,
我在
$dd = getxml($data);
file_put_contents('news.xml', $dd); 二行前 写echo $xml可输出很多数据,
可用上 $dd = getxml($data);
file_put_contents('news.xml', $dd); 这二行,没有反映,news.xml中也是空了,没有数据,
怎么解决?
zf213 2009-07-10
  • 打赏
  • 举报
回复
如果想方便的话,可以直接使用file_put_content函数,如下:
<?php
$data = "数据源";
function getxml($data) {
$XML = ' <?xml version="1.0" encoding="GB2312" ?>';
$XML .= ' <document>';
$XML .=' <webSite>http://899.cn/ </webSite>';
$XML .=' <webMaster>350038760@qq.com </webMaster>';
$XML .=' <updatePeri>15 </updatePeri>';
foreach($data as $row){
$XML .=" <item>";
$XML .=" <link>".$row['link']." </link>";
$XML .=" <title>".$row['title']." </title>";
$XML .=" <text>".$row['text']." </text>";
$XML .=" <image>".$row['image']." </image>";
$XML .=" <category>".$row['category']." </category>";
$XML .=" <pubDate>".$row['pubDate']." </pubDate>";
$XML .=" <item>";
}
$XML .=' </document>';
return $XML;
}
$dd = getxml($data);
file_put_contents('news.xml', $dd);
?>
zgycsmb 2009-07-10
  • 打赏
  • 举报
回复
修改:
谢谢大家,
1楼的我看明白了,可最后一步,“然后在news.xml中调用这个函数就可以了”,xml文件中怎么调php函数呀?
2楼的 我还没看明白,
zgycsmb 2009-07-10
  • 打赏
  • 举报
回复
谢谢大家,
二楼的我看明白了,可最后一步,“然后在news.xml中调用这个函数就可以了”,xml文件中怎么调php函数呀?
三楼的 我还没看明白,
llj480028 2009-07-10
  • 打赏
  • 举报
回复
自己看着改吧,加上一个,foreach()就OK了!
$doc=new DOMDocument('1.0');
@$doc->load("../home/data.xml");
$data=$doc->getElementsByTagName("data")->item(0);//
$item=$doc->createElement('item');
$username=$doc->createElement("username",utf8_encode($nick));
$item->appendChild($username);
$content = $doc->createElement("content",utf8_encode($msg));
$item->appendChild($content);
$data->appendChild($item);

$doc->save('data.xml');
zf213 2009-07-10
  • 打赏
  • 举报
回复
首先通过SQL语句得到数据源,然后再将这些数据循环在XML中显示,如下:

<?php
$data = "数据源";
function getxml($data) {
$XML = '<?xml version="1.0" encoding="GB2312" ?>';
$XML .= '<document>';
$XML .='<webSite>http://899.cn/ </webSite>';
$XML .='<webMaster>350038760@qq.com </webMaster>';
$XML .='<updatePeri>15 </updatePeri>';
foreach($data as $row){
$XML .="<item>";
$XML .="<link>".$row['link']."</link>";
$XML .="<title>".$row['title']."</title>";
$XML .="<text>".$row['text']."</text>";
$XML .="<image>".$row['image']."</image>";
$XML .="<category>".$row['category']."</category>";
$XML .="<pubDate>".$row['pubDate']."</pubDate>";
$XML .="<item>";
}
$XML .='</document>';
return $XML;
}
?>
然后在news.xml中调用这个函数就可以了。
zf213 2009-07-10
  • 打赏
  • 举报
回复
是不是你服务器的配置问题呢
zgycsmb 2009-07-10
  • 打赏
  • 举报
回复
回九楼,
我在本地测试 9 楼的代码,完全是对的,
可放到 服务器中,就不行,
服务器是 linux
zgycsmb 2009-07-10
  • 打赏
  • 举报
回复
<?php
$data = array('link'=>'1','title'=>'tt','text'=>'dd','image'=>'null','category'=>'test','pubDate'=>'ddddd');
function getxml($data) {
$XML = ' <?xml version="1.0" encoding="GB2312" ?>';
$XML .= ' <document>';
$XML .=' <webSite>http://899.cn/ </webSite>';
$XML .=' <webMaster>350038760@qq.com </webMaster>';
$XML .=' <updatePeri>15 </updatePeri>';
foreach($data as $row){
$XML .=" <item>";
$XML .=" <link>".$row['link']." </link>";
$XML .=" <title>".$row['title']." </title>";
$XML .=" <text>".$row['text']." </text>";
$XML .=" <image>".$row['image']." </image>";
$XML .=" <category>".$row['category']." </category>";
$XML .=" <pubDate>".$row['pubDate']." </pubDate>";
$XML .=" </item>";
}
$XML .=' </document>';
return $XML;
}
$dd = getxml($data);
echo $dd;
//file_put_contents('news.xml', $dd);
?>
看看你那边输出是什么样的,把结果贴出来下,
zgycsmb 2009-07-10
  • 打赏
  • 举报
回复
把你那边的 测试输出 ,贴出来看下,
zf213 2009-07-10
  • 打赏
  • 举报
回复
我这里没有问题,那就不清楚你那到底是问题了。

21,891

社区成员

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

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