Golang Go语言中求教使用 Golang 替换 html 的标签里的内容
直接上想要达到的效果吧;
替换前内容:
<h1>h1.1</h1><h1>h1.2</h1><div>div1<span>span1</span></div>
希望替换后内容:
<h1>Replace_h1.1</h1><h1>Replace_h1.2</h1><div>Replace_div1<span>Replace_span1</span></div>
目前楼主使用了PuerkitoBio/goquery
可以实现基本功能,但是缺点是会自行补充html
标签,例如:
// 使用 goquery 替换的效果 fmt.Println(doc.Html())
<html><head></head><body><h1>Replace_h1.1</h1><h1>Replace_h1.2</h1><div>Replace_div1<span>Replace_span1</span></div></body></html>
<html><head></head><body>
这些标签是楼主并不想要的?
求大佬们解惑。
有什么办法可以避免这种标签补全呢?或者有其他方案或者其他包可以实现。
Golang Go语言中求教使用 Golang 替换 html 的标签里的内容
更多关于Golang Go语言中求教使用 Golang 替换 html 的标签里的内容的实战教程也可以访问 https://www.itying.com/category-94-b0.html
正则表达式不简单吗
更多关于Golang Go语言中求教使用 Golang 替换 html 的标签里的内容的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
感觉正则可以实现,跟 go 没关系
我的建议是使用 goquery 替换后,再使用正则把<html><head></head><body>和</body></html>这段去掉
如果没有一个包可以用的话,我会选择用正则的,但是还是想以最快的方法实现这个功能。
"github.com/antchfx/htmlquery"
获取到的 doc 对象进行操作,不像要的可以把 node 找到后删除。
h1 找到后 是个 list 。然后循环的进行替换
for index,nodeH1 :=range. xxx {
if nodeH1!=nil {
origin :=htmlquery.htmlquery.InnerText
//根据某种要求进行替换。然后回写
}
}
不能先取到 body 再 get html 吗?
需要替换的字符串没有 body 哦。
从结果来看是那个库自己加上了 body 吧?
这不就是个 xml 吗?
我直接用正则吧,貌似没有合适的库。
是的,这个库自己补全这些标签,所以不太符合我希望达到的效果,我还是用正则吧~
go template 试试?