获取R中XML节点的文本值

时间:2015-05-23 16:43:16

标签: xml r

我是R中的XML新手。来自VBA背景,您可以通过Nodelist.item(0).text

获取节点内的文本值。

这是如何在R中完成的?我设法得到一个节点列表但是它们也显示了节点名,但是列表当然没有任何XML函数。

我的代码

ConnString <- "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.dividendhistory%20where%20symbol%20%3D%20%22KO%22%20and%20startDate%20%3D%20%222012-01-01%22%20and%20endDate%20%3D%20%222013-12-31%22&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys"

     tURL <- getURL(ConnString) 
      x <- xmlParse(tURL)  

  NodeList.Dates <- getNodeSet(x, "//Date")
  NodeList.Div <- getNodeSet(x, "//Dividends")

Output
> NodeList.Div
[[1]]
<Dividends>0.330000</Dividends> 

[[2]]
<Dividends>0.305000</Dividends> 

[[3]]
<Dividends>0.305000</Dividends> 

[[4]]
<Dividends>0.305000</Dividends> 

1 个答案:

答案 0 :(得分:1)

这不是一个可重现的例子,所以我无法查看我的建议,但我认为你正在寻找xmlValue()getNodeSet也接受一个函数,请参阅其手册页,其中你可以传递xmlValue,这也应该有效

好的,完整的事情是

library(RCurl)
library(XML)
ConnString <- "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.dividendhistory%20where%20symbol%20%3D%20%22KO%22%20and%20startDate%20%3D%20%222012-01-01%22%20and%20endDate%20%3D%20%222013-12-31%22&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys"
tURL <- getURL(ConnString) 
x <- xmlParse(tURL)  
xpathSApply(x, "//Date", xmlValue)
xpathSApply(x, "//Dividends", xmlValue)