当我在表达式中使用 XPath 1.0 的 substring-before 或 -after 时,会发生一些事情,使我的后续 xmlValue 调用引发错误。下面的代码显示 XPath 表达式与 httr 一起工作得很好,但随后不能与 RCurl 一起工作。
require(XML)
require(httr)
doc <- htmlTreeParse("http://www.cottonbledsoe.com/CM/Custom/TOCContactUs.asp", useInternal = TRUE)
(string <- xpathSApply(doc, "substring-before(//div[@id = 'contactInformation']//p, 'Phone')", xmlValue, trim = TRUE))
require(RCurl)
fetch <- GET("http://www.cottonbledsoe.com/CM/Custom/TOCContactUs.asp")
contents <- content(fetch)
locsnodes <- getNodeSet(contents, "//div[@id = 'contactInformation']//p")
sapply(locsnodes, xmlValue)
[1] "500 West Illinois, Suite 300\r\n Midland, Texas 79701\r\n Phone: 432-897-1440\r\n Toll Free: 866-721-6665\r\n Fax: 432-682-3672"
上面的代码工作正常,但我想在它之前使用 substring-before 来清理结果,如下所示:
[1] "500 West Illinois, Suite 300\r\n Midland, Texas 79701\r\n "
locsnodes <- getNodeSet(contents, "substring-before(//div[@id = 'contactInformation']//p, 'Phone')")
sapply(locsnodes, xmlValue)
Error in UseMethod("xmlValue") :
no applicable method for 'xmlValue' applied to an object of class "character"
我如何使用substring-
以及 RCurl,因为 RCurl 是为以后使用的更复杂操作选择的包?
感谢您的任何指导(或更好的方式来实现我想要的