在R XML Xpath中,@ href返回文本" href"

时间:2015-10-03 01:49:31

标签: xml r xpath

我正在尝试使用这些two posts中所述的Xpath代码获取href的内容。不幸的是,代码返回的是实际文本" href"除了URL之外还有几个空格。我怎么能避免这种情况?

library(XML)

html <- readLines("http://www.msu.edu")
html.parse <- htmlParse(html)
Node <- getNodeSet(html.parse, "//div[@id='MSU-top-utilities']//a/@href")
Node[[1]]

# > Node[[1]]
#                  href 
# "students/index.html" 
# attr(,"class")
# [1] "XMLAttributeValue"

1 个答案:

答案 0 :(得分:4)

它只是一个命名的字符向量。你可以这样做:

as.character(Node[[1]])

会给你

## [1] "students/index.html"

或者,这是xml2包中更好的习语:

library(xml2)

doc <- read_html("http://www.msu.edu")
nodes <- xml_find_all(doc, "//div[@id='MSU-top-utilities']//a")
xml_attr(nodes, "href")

## [1] "students/index.html"      "faculty-staff/index.html" "alumni/index.html"       
## [4] "businesses/index.html"    "visitors/index.html"