在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>[email protected]</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,
请问这功能怎么实现,
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>[email protected]</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,
请问这功能怎么实现,
$data = "数据源";
function getxml($data) {
$XML = '<?xml version="1.0" encoding="GB2312" ?>';
$XML .= '<document>';
$XML .='<webSite>http://899.cn/ </webSite>';
$XML .='<webMaster>[email protected] </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中调用这个函数就可以了。
$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');
二楼的我看明白了,可最后一步,“然后在news.xml中调用这个函数就可以了”,xml文件中怎么调php函数呀?
三楼的 我还没看明白,
谢谢大家,
1楼的我看明白了,可最后一步,“然后在news.xml中调用这个函数就可以了”,xml文件中怎么调php函数呀?
2楼的 我还没看明白,
<?php
$data = "数据源";
function getxml($data) {
$XML = ' <?xml version="1.0" encoding="GB2312" ?>';
$XML .= ' <document>';
$XML .=' <webSite>http://899.cn/ </webSite>';
$XML .=' <webMaster>[email protected] </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);
?>
我在
$dd = getxml($data);
file_put_contents('news.xml', $dd); 二行前 写echo $xml可输出很多数据,
可用上 $dd = getxml($data);
file_put_contents('news.xml', $dd); 这二行,没有反映,news.xml中也是空了,没有数据,
怎么解决?
应该是修改
$XML .=" <item>";
}
$XML .=' </document>';
这个<item>吧
<?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>[email protected] </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);
?>
我是把 getxml($data)放在 newsXml.php 中,此文件与news.xml同一目录
还有,我用你写的代码测试时,输出时,只有内容,数据库中查出来的内容,没有 xml的样式,
$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>[email protected] </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);
?>
看看你那边输出是什么样的,把结果贴出来下,
我在本地测试 9 楼的代码,完全是对的,
可放到 服务器中,就不行,
服务器是 linux
如果不能用这个函数 可以用下面的函数代替$file="test.xml";
$fp=fopen($file,"w");
$date="XML字符串";
fputs($fp,$date);
fclose($fp);