php如何生成xml文件
<?xmlversion="1.0"?><newsmodule><yearname="最新动态"><news><date>01-24</date><title><![CD...
<?xml version="1.0"?>
<newsmodule>
<year name="最新动态">
<news>
<date>01-24</date>
<title><![CDATA[最新动态]]></title>
<info>
<![CDATA[ 表面采用进口楸木木皮拼贴成精美的拼花,自然清晰的木材纹理得到完美的呈现,各种材质的合理搭配缔造了雅意系列精致的家具产品。
]]></info>
</news>
</year>
</newsmodule>
要生成这样一个xml文件,php要怎么写代码 展开
<newsmodule>
<year name="最新动态">
<news>
<date>01-24</date>
<title><![CDATA[最新动态]]></title>
<info>
<![CDATA[ 表面采用进口楸木木皮拼贴成精美的拼花,自然清晰的木材纹理得到完美的呈现,各种材质的合理搭配缔造了雅意系列精致的家具产品。
]]></info>
</news>
</year>
</newsmodule>
要生成这样一个xml文件,php要怎么写代码 展开
5个回答
展开全部
<?php
#使用dom生成xml,注意生成的xml中会没有空格。
$dom=new DOMDocument('1.0','utf-8');
$path="test.xml"; // $path 为xml文件的存储路径。
$module=$dom->createElement('newmodule');// root node
$dom->appendChild($module);
$year=$dom->createElement('year'); // add attribute node
$name=$dom->createAttribute('name');
$name->nodeValue="最新动态";
$year->setAttributeNode($name);
$module->appendChild($year);
$news=$dom->createElement('news');
$year->appendChild($news);
$date=$dom->createElement('date');
$date_value=$dom->createTextNode('01-24');
$date->appendChild($date_value);
$news->appendChild($date);
$title=$dom->createElement('title');
$title_value=$dom->createTextNode('<![CDATA[最新动态]]>');
$title->appendChild($title_value);
$news->appendChild($title);
$info=$dom->createElement('info');
$info_value=$dom->createTextNode('<![CDATA[ 表面采用进口楸木木皮拼贴成精美的拼花,自然清晰的木材纹理得到完美的呈现,各种材质的合理搭配缔造了雅意系列精致的家具产品。
]]>');
$info->appendChild($info_value);
$news->appendChild($info);
echo $dom->saveXML();
$dom->save($path);
?>
#使用dom生成xml,注意生成的xml中会没有空格。
$dom=new DOMDocument('1.0','utf-8');
$path="test.xml"; // $path 为xml文件的存储路径。
$module=$dom->createElement('newmodule');// root node
$dom->appendChild($module);
$year=$dom->createElement('year'); // add attribute node
$name=$dom->createAttribute('name');
$name->nodeValue="最新动态";
$year->setAttributeNode($name);
$module->appendChild($year);
$news=$dom->createElement('news');
$year->appendChild($news);
$date=$dom->createElement('date');
$date_value=$dom->createTextNode('01-24');
$date->appendChild($date_value);
$news->appendChild($date);
$title=$dom->createElement('title');
$title_value=$dom->createTextNode('<![CDATA[最新动态]]>');
$title->appendChild($title_value);
$news->appendChild($title);
$info=$dom->createElement('info');
$info_value=$dom->createTextNode('<![CDATA[ 表面采用进口楸木木皮拼贴成精美的拼花,自然清晰的木材纹理得到完美的呈现,各种材质的合理搭配缔造了雅意系列精致的家具产品。
]]>');
$info->appendChild($info_value);
$news->appendChild($info);
echo $dom->saveXML();
$dom->save($path);
?>
展开全部
大分类,两种:直接输出和使用xml解析类。
直接输出,自己看着办和输出html一样。
xml解析类 simplexml和xmldom两种,自己选择吧
直接输出,自己看着办和输出html一样。
xml解析类 simplexml和xmldom两种,自己选择吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给你一个我调用数据库生成的范例,你自己修改一下吧
<?php
$str = "SELECT distinct(loc),lastmod,changefreq,priority,picture,title FROM `sitemap_url` group by loc order by status";
$result = mysql_query($str) or die("Invalid query: " . mysql_error());
if($result)
{
$doc = new DOMDocument('1.0', 'utf-8');
$doc -> formatOutput = true;
$urlset = $doc ->createElement('urlset');
$xmlns = $doc ->createAttribute('xmlns');
$xmlns_img = $doc ->createAttribute('xmlns:image');
$xmlnsstr = $doc ->createTextNode("http://www.sitemaps.org/schemas/sitemap/0.9");
$xmlns_imgstr = $doc ->createTextNode("http://www.google.com/schemas/sitemap-image/1.1");
$xmlns ->appendChild($xmlnsstr);
$xmlns_img ->appendChild($xmlns_imgstr);
$urlset ->appendChild($xmlns);
$urlset ->appendChild($xmlns_img);
while($arr = mysql_fetch_array($result))
{
$url = $doc ->createElement('url');
$loc = $doc ->createElement('loc');
$lastmod = $doc ->createElement('lastmod');
$changefreq = $doc ->createElement('changefreq');
$priority = $doc ->createElement('priority');
$loc_c = $doc ->createTextNode($arr['loc']);
$loc ->appendChild($loc_c);
$lastmod_c = $doc ->createTextNode($arr['lastmod']);
$lastmod ->appendChild($lastmod_c);
$changefreq_c = $doc ->createTextNode($arr['changefreq']);
$changefreq ->appendChild($changefreq_c);
$priority_c = $doc ->createTextNode($arr['priority']);
$priority ->appendChild($priority_c);
$urlset ->appendChild($url);
$url ->appendChild($loc);
if($arr['picture'])
{
$title = $arr['title'];
$imgtext = $arr['picture'];
$sql = "select picture from sitemap_url where title='$title'";
$result2 = mysql_query($sql);
while($arr2 = mysql_fetch_array($result2))
{
$image_image = $doc ->createElement('image:image');
$image_loc = $doc ->createElement('image:loc');
$image_image_c = $doc ->createTextNode($arr2['picture']);
$image_loc_c = $doc ->createTextNode($title);
$image_image->appendChild($image_image_c);
$image_loc->appendChild($image_loc_c);
$url ->appendChild($image_image);
$url ->appendChild($image_loc);
}
}
$url ->appendChild($lastmod);
$url ->appendChild($changefreq);
$url ->appendChild($priority);
}
$doc ->appendChild($urlset);
$doc -> save("sitemap.xml");
}
?>
<?php
$str = "SELECT distinct(loc),lastmod,changefreq,priority,picture,title FROM `sitemap_url` group by loc order by status";
$result = mysql_query($str) or die("Invalid query: " . mysql_error());
if($result)
{
$doc = new DOMDocument('1.0', 'utf-8');
$doc -> formatOutput = true;
$urlset = $doc ->createElement('urlset');
$xmlns = $doc ->createAttribute('xmlns');
$xmlns_img = $doc ->createAttribute('xmlns:image');
$xmlnsstr = $doc ->createTextNode("http://www.sitemaps.org/schemas/sitemap/0.9");
$xmlns_imgstr = $doc ->createTextNode("http://www.google.com/schemas/sitemap-image/1.1");
$xmlns ->appendChild($xmlnsstr);
$xmlns_img ->appendChild($xmlns_imgstr);
$urlset ->appendChild($xmlns);
$urlset ->appendChild($xmlns_img);
while($arr = mysql_fetch_array($result))
{
$url = $doc ->createElement('url');
$loc = $doc ->createElement('loc');
$lastmod = $doc ->createElement('lastmod');
$changefreq = $doc ->createElement('changefreq');
$priority = $doc ->createElement('priority');
$loc_c = $doc ->createTextNode($arr['loc']);
$loc ->appendChild($loc_c);
$lastmod_c = $doc ->createTextNode($arr['lastmod']);
$lastmod ->appendChild($lastmod_c);
$changefreq_c = $doc ->createTextNode($arr['changefreq']);
$changefreq ->appendChild($changefreq_c);
$priority_c = $doc ->createTextNode($arr['priority']);
$priority ->appendChild($priority_c);
$urlset ->appendChild($url);
$url ->appendChild($loc);
if($arr['picture'])
{
$title = $arr['title'];
$imgtext = $arr['picture'];
$sql = "select picture from sitemap_url where title='$title'";
$result2 = mysql_query($sql);
while($arr2 = mysql_fetch_array($result2))
{
$image_image = $doc ->createElement('image:image');
$image_loc = $doc ->createElement('image:loc');
$image_image_c = $doc ->createTextNode($arr2['picture']);
$image_loc_c = $doc ->createTextNode($title);
$image_image->appendChild($image_image_c);
$image_loc->appendChild($image_loc_c);
$url ->appendChild($image_image);
$url ->appendChild($image_loc);
}
}
$url ->appendChild($lastmod);
$url ->appendChild($changefreq);
$url ->appendChild($priority);
}
$doc ->appendChild($urlset);
$doc -> save("sitemap.xml");
}
?>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你用的是php5的话,可能得看看
php5和php6在unicode上的设定是有区别的,php6扩大了php5支持unicode的特性。
关于转码:
转码时可能要安装iconv:
php帮助网站:
关于文件内容写入的例子:
根据你的要求,如果要保存成unicode的xml文件的话可能麻烦点,看你的php是哪个版本的,有没有iconv库什么的。
<?php
//gb2312转换为unicode
function gb2un($g)//传入gb2312字符串返回unicode码
{
preg_match_all("/[\x80-\xff]?./",$g,$ar);
$str = "";
foreach($ar[0] as $v)
{
$str = $str."".utf8_unicode(iconv("gb2312","utf-8",$v)).";";
}
return $str;
}
$myString = gb2un("123我");
$fh=fopen('test.txt',"w");
fwrite($fh,unicode_encode($myString));
fclose($fh);
?>
php5和php6在unicode上的设定是有区别的,php6扩大了php5支持unicode的特性。
关于转码:
转码时可能要安装iconv:
php帮助网站:
关于文件内容写入的例子:
根据你的要求,如果要保存成unicode的xml文件的话可能麻烦点,看你的php是哪个版本的,有没有iconv库什么的。
<?php
//gb2312转换为unicode
function gb2un($g)//传入gb2312字符串返回unicode码
{
preg_match_all("/[\x80-\xff]?./",$g,$ar);
$str = "";
foreach($ar[0] as $v)
{
$str = $str."".utf8_unicode(iconv("gb2312","utf-8",$v)).";";
}
return $str;
}
$myString = gb2un("123我");
$fh=fopen('test.txt',"w");
fwrite($fh,unicode_encode($myString));
fclose($fh);
?>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
php 有专门的XML函数组,你看下就知道了,很简单的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询