+ -
当前位置:首页 → 问答吧 → php生成XML得出的结果不是我想要的,修改程序不精通,求大虾帮帮忙

php生成XML得出的结果不是我想要的,修改程序不精通,求大虾帮帮忙

时间:2010-08-24

来源:互联网

<?php
#code by jason_zhou 2010-08-18
#自动生成一个如下的XML文件
#
# <?xml version="1.0" encoding="UTF-8" ? >
#   <urlset xmlns="地址">
#    <url>
#     <loc>地址</loc>
#             <lastmod>2010-08-17</lastmod>
#             <changefreq>always</changefreq>
#            <priority>1.0</priority>
#        </url>
#    </urlset>
@header("content-type:text/html; charset=UTF-8");
//设置数据库变量
$db_host   = 'localhost'; //数据库主机名称,一般都为localhost
$db_user   = 'root';        //数据库用户帐号,根据个人情况而定
$db_passw = 'a123456';   //数据库用户密码,根据个人情况而定
$db_name = 'xuexi';         //数据库具体名称,以刚才创建的数据库为准
//连接数据库
$conn = mysql_connect($db_host,$db_user,$db_passw) or die ('数据库连接失败!');
//设置字符集,如utf8和gbk等,根据数据库的字符集而定
mysql_query("set names 'utf8'");
//选定数据库
mysql_select_db($db_name,$conn) or die('数据库选定失败!');

$doc=new DOMDocument("1.0","UTF-8"); #声明文档类型
$doc->formatOutput=true;               #设置可以输出操作
#声明根节点,最好一个XML文件有个跟节点
$root=$doc->createElement("news");    #创建节点对象实体
$root=$doc->appendChild($root);     #把节点添加进来
//$xmlns=$doc->createAttribute("links");
//$root->appendChild($xmlns);
//$xmlnsValue = $doc->createTextNode("地址"");
//$xmlns->appendChild($xmlnsValue);

$sql = "SELECT id,name FROM `content` ORDER BY `id` desc LIMIT 0,10";
$result = mysql_query($sql);
while($array = mysql_fetch_array($result)){    //循环生成节点,如果数据库调用出来就改这
//$xmlnsValue = $doc->createTextNode("地址"");
//$xmlns->appendChild($xmlnsValue);
$url=$doc->createElement("new"); #创建节点对象实体
$url=$root->appendChild($url);    #把节点添加到root节点的子节点

$loc=$doc->createElement("links");    #创建节点对象实体
$loc=$url->appendChild($loc);   #把节点添加到url节点的子节
//$lastmod=$doc->createElement("lastmod");   #创建节点对象实体
//$lastmod=$url->appendChild($lastmod); #把节点添加到url节点的子节
$changefreq=$doc->createElement("mytext.");   #创建节点对象实体
$changefreq=$url->appendChild($changefreq); #把节点添加到url节点的子节
//$priority=$doc->createElement("priority");   #创建节点对象实体
//$priority=$url->appendChild($priority); #把节点添加到url节点的子节
$loc_url = "地址."";
$loc->appendChild($doc->createTextNode($loc_url)); #createTextNode创建内容的子节点,然后把内容添加到节点中来
//$lastmod->appendChild($doc->createTextNode(date("Y-m-d", $array['*'])));
$changefreq->appendChild($doc->createTextNode($array['name']));
//$priority->appendChild($doc->createTextNode("1.0"));
}
$doc->save("sitemap.xml"); #保存路径eg d:/ljzhen
echo "生成成功。。。。<br>";
?>
------------------------------------------------
生成得出结果是如下:
<?xml version="1.0" encoding="UTF-8"?>
<news>
  <new>
    <links>地址</links>
    <mytext.>123123</mytext.>
  </new>
</news>
---------------------------------
但是我想要的结果是如下:
<?xml version="1.0" encoding="UTF-8"?>
<news>
<new links="地址" mytext="琼海中晨丽景水岸位于海南省琼海市银海路北侧"/>
</news>
那怎么修改上面的程序呢?请大哥们帮帮忙!

作者: jingzhenai   发布时间: 2010-08-24

哎。何苦自己折腾自己。直接用原生方法生成不好么...

作者: cain   发布时间: 2010-08-24