使用R和XPath,如何从结果中删除\n和\ t等格式元素?

law*_*yeR 5 html xml xpath r

使用XML我可以刮掉我需要的URL,但是当我使用xpathSApply它时,R会返回不需要的\n和\ t指示符(新行和制表符).这是一个例子:

doc <- htmlTreeParse("http://www.milesstockbridge.com/offices/", useInternal = TRUE) # scrape and parse an HTML site
xpathSApply(doc, "//div[@class='info']//h3", xmlValue) 
[1] "\n\t\t\t\t\t\tBaltimore\t\t\t\t\t"     "\n\t\t\t\t\t\tCambridge\t\t\t\t\t"     "\n\t\t\t\t\t\tEaston\t\t\t\t\t"        "\n\t\t\t\t\t\tFrederick\t\t\t\t\t"    
[5] "\n\t\t\t\t\t\tRockville\t\t\t\t\t"     "\n\t\t\t\t\t\tTowson\t\t\t\t\t"        "\n\t\t\t\t\t\tTysons Corner\t\t\t\t\t" "\n\t\t\t\t\t\tWashington\t\t\t\t\t" 
Run Code Online (Sandbox Code Playgroud)

正如这个问题所解释的那样,正则表达式函数可以轻松删除不需要的格式元素, 如何删除网站数据收集结果中的\n\t\t\tt?但我宁愿xpath首先做的工作,如果可能的话(我有数百个这样解析).

此外,还有一些功能,例如translate,在这个问题中: 使用Translate函数删除xml中的换行符,但是如何忽略某些标签?以及strip()我在Python问题中看到的内容.我不知道使用R和xpath时哪些可用.

它可能是一个text()函数有帮助,但我不知道如何将它包含在我的xpathSApply表达式中.同样地normalize-space().

Ric*_*ven 4

您只想trim = TRUExmlValue()通话中争论。

> xpathSApply(doc, "//div[@class='info']//h3", xmlValue, trim = TRUE) 
#[1] "Baltimore"     "Cambridge"     "Easton"       
#[4] "Frederick"     "Rockville"     "Towson"       
#[7] "Tysons Corner" "Washington"  
Run Code Online (Sandbox Code Playgroud)