我有一个带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)
一个选项是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)
这是一个简单的解决方案(尽管我更喜欢按照问题注释中的建议使用包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)