将html结果保存到txt或html文件

Ber*_*ery 6 r

我有一个带html代码的变量.

这里是R控制台中的代码变量outpout:

<!DOCTYPE html>
<html>
<body>

<h1>My First Heading</h1>

<p>My first paragraph.</p>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我尝试将内容保存到txt文件中

 write.table(code, file='C:/Users/Desktop/code_result.txt')
Run Code Online (Sandbox Code Playgroud)

但它堆积了这个错误:

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")
Run Code Online (Sandbox Code Playgroud)

Hac*_*k-R 5

一个选项是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()
Run Code Online (Sandbox Code Playgroud)


Dav*_*yan 5

这是一个简单的解决方案(尽管我更喜欢按照问题注释中的建议使用包XML):

code <- "<!DOCTYPE html>
  <html>
  <body>

  <h1>My First Heading</h1>

  <p>My first paragraph.</p>

  </body>
</html>"
Run Code Online (Sandbox Code Playgroud)

注意:如果您已经有一个包含上述文本的对象,则可以将其转换为字符串,因此适用以下代码:

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)
Run Code Online (Sandbox Code Playgroud)