我希望使用getNodeSet
包中的XML
函数获取NodeSet,并将其作为文本写入文件中。
例如:
> getNodeSet(htmlParse("http://www.google.fr/"), "//div[@id='hplogo']")[[1]]
<div title="Google" align="left" id="hplogo" onload="window.lol&&lol()" style="height:110px;width:276px;background:url(/images/srpr/logo9w.png) no-repeat">
<div nowrap="" style="color:#777;font-size:16px;font-weight:bold;position:relative;top:70px;left:218px">France</div>
</div>
我想在文件中保存所有这个节点。
问题是我们不能直接用以下方法编写对象:
write.lines(getNodeSet(...), file)
as.character(getNodeSet(...))
返回一个C指针。
我该怎么做?谢谢。
答案 0 :(得分:3)
要将XML对象保存到文件,请使用saveXML
,例如
url = "http://www.google.fr/"
nodes = getNodeSet(htmlParse(url), "//div[@id='hplogo']")[[1]]
fl <- saveXML(nodes, tempfile())
readLines(fl)
答案 1 :(得分:1)
必须有更好的方法,在那之前你可以捕获XMLNode输出的print
方法:
nodes <- getNodeSet(...)
sapply(nodes, function(x)paste(capture.output(print(x)), collapse = ""))
答案 2 :(得分:0)
我知道这可能有点过时了,但是我遇到了同样的问题,并希望将其留作参考,在搜索并努力解决之后,答案很简单:
htmlnodes <- toString(nodes)
write.lines(htmlnodes, file)