2012-09-04 48 views
1

我有一個鏈接載體從中我想創建一個sitemap.xml的文件(文件協議可從這裏:http://www.sitemaps.org/protocol.html如何使用R和{XML}包創建sitemap.xml文件?

我明白sitemap.xml的協議(這是相當簡單),但我我不確定什麼是使用{XML}包的最明智的方式。

一個簡單的例子:

links <- c("http://r-statistics.com", 
      "http://www.r-statistics.com/on/r/", 
      "http://www.r-statistics.com/on/ubuntu/") 

如何 「鏈接」 用於構建一個sitemap.xml的文件?

回答

4

是這樣的,你在找什麼。 (它使用httr包得到最後修改的位並直接用非常有用的whisker包編寫XML。)

require(whisker) 
require(httr) 
tpl <- ' 
<?xml version="1.0" encoding="UTF-8"?> 
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> 
{{#links}} 
    <url> 
     <loc>{{{loc}}}</loc> 
     <lastmod>{{{lastmod}}}</lastmod> 
     <changefreq>{{{changefreq}}}</changefreq> 
     <priority>{{{priority}}}</priority> 
    </url> 
{{/links}} 
</urlset> 
' 

links <- c("http://r-statistics.com", "http://www.r-statistics.com/on/r/", "http://www.r-statistics.com/on/ubuntu/") 


map_links <- function(l) { 
    tmp <- GET(l) 
    d <- tmp$headers[['last-modified']] 

    list(loc=l, 
     lastmod=format(as.Date(d,format="%a, %d %b %Y %H:%M:%S")), 
     changefreq="monthly", 
     priority="0.8") 
} 

links <- lapply(links, map_links) 

cat(whisker.render(tpl))