我正在尝试使用Blogger Feed创建我的XML站点地图,所以我尝试使用下面的代码然后它正常工作。
<?php
header('application/rss+xml; charset=utf-8');
header('Content-Type: text/xml');
header('Pragma: public');
header('Cache-control: private');
header('Expires: -1');
echo '<?xml version="1.0" encoding="utf-8"?>
<urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
';
$sitemapONE = simplexml_load_file('http://www.exeideas.com/atom.xml?redirect=false&start-index=1&max-results=368');
foreach($sitemapONE->entry as $value)
{
echo '
<url>
<loc>http://www.exeideas.com/'.$value->link[4]->attributes()->href.'</loc>
<lastmod>'.$value->updated.'</lastmod>
<changefreq>always</changefreq>
</url>
';
}
echo '</urlset>';
?>
但当我将“max-results = 368”增加到“max-results = 369”时,我收到错误为“文档末尾的额外内容”。在XML页面的末尾,它显示:
(!)致命错误:在非对象上调用成员函数attributes().............
现在该怎么办?
答案 0 :(得分:1)
由于这是动态的,你需要在调用它之前检查它的存在:
foreach($sitemapONE->entry as $value)
{
if(isset($value->link[4]))
{
echo '
<url>
<loc>http://www.exeideas.com/'.$value->link[4]->attributes()->href.'</loc>
<lastmod>'.$value->updated.'</lastmod>
<changefreq>always</changefreq>
</url>
';
}
}
echo '</urlset>';
?>
答案 1 :(得分:0)
感谢 user2191572 ,您解决了我的问题。现在对于新来者,我在这里附上完美的代码,通过php制作你的Blogger站点地图,该站点地图也经过 validator.w3.org验证 ......
<?php
header('application/rss+xml; charset=utf-8');
header('Content-Type: text/xml');
header('Pragma: public');
header('Cache-control: private');
header('Expires: -1');
echo '<?xml version="1.0" encoding="utf-8"?>
<urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
';
$sitemapONE = simplexml_load_file('http://www.exeideas.com/atom.xml?redirect=false&start-index=1&max-results=500');
foreach($sitemapONE->entry as $value)
{
echo '
<url>
<loc>http://www.exeideas.com/'.$value->link[4]->attributes()->href.'</loc>
<lastmod>'.$value->updated.'</lastmod>
<changefreq>always</changefreq>
</url>
';
}
echo '</urlset>';
?>