我可以写 xmlGetAttr(x,"title")
并xmlGetAttr(x,"href")
获得属性“title”和“href”,
我可以将两个语句合二为一吗?
xmlGetAttr(x,c("title","href"))
不能工作。
a[[name]] 中的错误:尝试选择多个元素
问问题
1390 次
2 回答
1
您可以使用xmlAttrs
xmlAttrs(x)[c("title","href")]
举个例子:
require(XML)
udata<-htmlParse('http://cran.r-project.org/')
frames<-getNodeSet(udata,'//*/frame')
# > xmlAttrs(frames[[1]])[c('src','name')]
# src name
# "logo.html" "logo"
于 2012-10-03T09:15:29.380 回答
0
getNodeSet
或中的路径xpathApply
可以是具有多个元素的字符向量
attrs <- c("src", "name")
paths <- sprintf("//frame/@%s", attrs)
所以使用@user1609452 的有用的可重现示例
require(XML)
udata<-htmlParse('http://cran.r-project.org/')
vals <- xpathSApply(udata, paths)
然后例如
matrix(vals, ncol=length(attrs), byrow=TRUE, dimnames=list(NULL, attrs))
导致
> matrix(vals, ncol=length(attrs), byrow=TRUE, dimnames=list(NULL, attrs))
src name
[1,] "logo.html" "logo"
[2,] "navbar.html" "contents"
[3,] "banner.shtml" "banner"
于 2012-10-03T11:43:43.980 回答