使用 R grepl 删除 HTML 文件中的一行
Remove a line in an HTML file using R grepl
我在名为 doc
的对象中有一个 HTLM 文档
> doc
<!DOCTYPE html>
<h1>Hello</h1>
<br>
<p>I am an html file</p>
<script myscript1 src="https://website.com/javascripts.js" type="text/javascript"></script>
<p>I am a paragraph</p>
<script myscript2 src="https://website2.com/function.js" type="text/javascript"></script>
我的目标是创建一个 R 函数以从 doc
中删除带有脚本 myscript1 的行
<script myscript1 src="https://website.com/javascripts.js" type="text/javascript"></script>
我尝试了以下代码,但它不起作用:
remove <- "<script myscript1 src="https://website.com/javascripts.js" type="text/javascript"></script>"
doc <- doc[!grepl(paste(remove), doc),]
注意:删除 myscript1 后,由于 xPath,我需要从文档中获取一些元素。
你能帮帮我吗?谢谢
一种方法是首先将 html 文件的字符向量表示形式放入 R 中并使用它。为此,我们可以将 externalptr 对象 (blob) 作为文本 html 文件写出,然后使用基本函数 readLines 将其读回。考虑:
old <- '<!DOCTYPE html>
<h1>Hello</h1>
<br>
<p>I am an html file</p>
<script myscript1 src="https://website.com/javascripts.js"
type="text/javascript"></script>
<p>I am a paragraph</p>
<script myscript2 src="https://website2.com/function.js"
type="text/javascript"></script>'
write(old,"old.html")
library(xml2)
doc <- read_xml("old.html", as_html=TRUE)
write_xml(doc, "foo.html")
bar <- readLines("foo.html")
barbar <- bar[!grepl("myscript1",bar)]
barbar
#[1] "<!DOCTYPE html>"
#[2] "<html><body>"
#[3] "<h1>Hello</h1>"
#[4] "<br><p>I am an html file</p>"
#[5] "<script myscript2 src=\"https://website2.com/function.js\"
# type=\"text/javascript\"></script>"
#[6] "</body></html>"rite(barbar, "new.html")
我在名为 doc
的对象中有一个 HTLM 文档> doc
<!DOCTYPE html>
<h1>Hello</h1>
<br>
<p>I am an html file</p>
<script myscript1 src="https://website.com/javascripts.js" type="text/javascript"></script>
<p>I am a paragraph</p>
<script myscript2 src="https://website2.com/function.js" type="text/javascript"></script>
我的目标是创建一个 R 函数以从 doc
中删除带有脚本 myscript1 的行<script myscript1 src="https://website.com/javascripts.js" type="text/javascript"></script>
我尝试了以下代码,但它不起作用:
remove <- "<script myscript1 src="https://website.com/javascripts.js" type="text/javascript"></script>"
doc <- doc[!grepl(paste(remove), doc),]
注意:删除 myscript1 后,由于 xPath,我需要从文档中获取一些元素。
你能帮帮我吗?谢谢
一种方法是首先将 html 文件的字符向量表示形式放入 R 中并使用它。为此,我们可以将 externalptr 对象 (blob) 作为文本 html 文件写出,然后使用基本函数 readLines 将其读回。考虑:
old <- '<!DOCTYPE html>
<h1>Hello</h1>
<br>
<p>I am an html file</p>
<script myscript1 src="https://website.com/javascripts.js"
type="text/javascript"></script>
<p>I am a paragraph</p>
<script myscript2 src="https://website2.com/function.js"
type="text/javascript"></script>'
write(old,"old.html")
library(xml2)
doc <- read_xml("old.html", as_html=TRUE)
write_xml(doc, "foo.html")
bar <- readLines("foo.html")
barbar <- bar[!grepl("myscript1",bar)]
barbar
#[1] "<!DOCTYPE html>"
#[2] "<html><body>"
#[3] "<h1>Hello</h1>"
#[4] "<br><p>I am an html file</p>"
#[5] "<script myscript2 src=\"https://website2.com/function.js\"
# type=\"text/javascript\"></script>"
#[6] "</body></html>"rite(barbar, "new.html")