3

我可以写 xmlGetAttr(x,"title")xmlGetAttr(x,"href")获得属性“title”和“href”,
我可以将两个语句合二为一吗?
xmlGetAttr(x,c("title","href"))不能工作。
a[[name]] 中的错误:尝试选择多个元素

4

2 回答 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 回答