我有一个带html代码的变量。
这里是R控制台中的代码变量outpout:
<!DOCTYPE html>
<html>
<body>
<h1>My First Heading</h1>
<p>My first paragraph.</p>
</body>
</html>
我尝试将内容保存到txt文件
write.table(code, file='C:/Users/Desktop/code_result.txt')
但它堆积了这个错误:
Error in as.data.frame.default(x[[i]], optional = TRUE) :
c("cannot coerce class \"c(\"HTMLInternalDocument\", \"HTMLInternalDocument\", \"XMLInternalDocument\", \" to a data.frame", "cannot coerce class \"\"XMLAbstractDocument\")\" to a data.frame")
答案 0 :(得分:4)
一个选项是saveXML
,另一个选项是sink()
:
pacman::p_load(scrapeR) # or require() or library()
f = system.file("exampleData", "mtcars.xml", package="XML")
doc = xmlTreeParse(f, useInternalNodes = TRUE)
sink("your.file.txt")
doc
sink()
答案 1 :(得分:4)
这是一个简单的解决方案(虽然我更喜欢使用包XML,如您对问题的评论中所建议的那样):
code <- "<!DOCTYPE html>
<html>
<body>
<h1>My First Heading</h1>
<p>My first paragraph.</p>
</body>
</html>"
注意:如果您已经有一个包含上述文本的对象, 您可以将其转换为字符串,因此以下代码适用:
code <- paste(as.character(code), collapse = "\n")
write.table(code,
file='C:/Users/dsargsy/Desktop/code_result.html',
quote = FALSE,
col.names = FALSE,
row.names = FALSE)
答案 2 :(得分:1)
对于所有读/写操作来说非常舒适的软件包是rio软件包。
library(rio)
export(html_code,
file="html_code_result.html",
format="html"
)
使用这种语法,rio :: export()函数支持许多其他格式, 包括
等等。 这也非常快!
答案 3 :(得分:0)
仅使用基数的最简单解决方案必须是:
writeLines(text = code, con = 'C:/Users/Desktop/code_result.txt')