我正在尝试在R中解析iTunes的前100名,并输出艺术家、歌曲等信息,但我遇到了XML文件方面的问题。我想这是由于XML文件导致的。我能够轻松地使用Billboard的RSS(http://www1.billboard.com/rss/charts/hot-100)获取可用数据。
尝试使用类似的策略处理iTunes(https://itunes.apple.com/us/rss/topmusicvideos/limit=100/explicit=true/xml)。
我只是得到无意义的东西:
我猜测这是XML文件的格式问题。在第一个函数中,我该如何让这些iTunes数据与Billboard的数据落入类似的结构中?
GetBillboard <- function() {
hot.100 <- xmlTreeParse("http://www1.billboard.com/rss/charts/hot-100")
hot.100 <- xpathApply(xmlRoot(hot.100), "//item")
top.songs <- character(length(hot.100))
for(i in 1:length(hot.100)) {
top.songs[i] <- xmlSApply(hot.100[[i]], xmlValue)[3]
}
return(top.songs)
}
尝试使用类似的策略处理iTunes(https://itunes.apple.com/us/rss/topmusicvideos/limit=100/explicit=true/xml)。
GetITunes <- function() {
itunes.raw <- getURL("https://itunes.apple.com/us/rss/topmusicvideos/limit=100/explicit=true/xml")
itunes.xml <- xmlTreeParse(itunes.raw)
top.vids <- xpathApply(xmlRoot(itunes.xml), "//entry")
return(top.vids)
}
我只是得到无意义的东西:
> m <- GetITunes()
> m
list()
attr(,"class")
[1] "XMLNodeSet"
>
我猜测这是XML文件的格式问题。在第一个函数中,我该如何让这些iTunes数据与Billboard的数据落入类似的结构中?
hot.100 <- xpathApply(xmlRoot(hot.100), "//item")
谢谢!
xmlParse
而不是xmlTreeParse
,则不应该收到该警告。 - MrFlickxmlTreeParse
方法之后提取了我所需的内容,但这种方法似乎在xmlParse
中不起作用,所以我现在只能容忍警告。谢谢! - Kai Seward