直接上想要达到的效果吧;
替换前内容:
<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>这些标签是楼主并不想要的?
求大佬们解惑。
有什么办法可以避免这种标签补全呢?或者有其他方案或者其他包可以实现。
1
dreasky 2022 年 10 月 19 日
正则表达式不简单吗
|
2
dog82 2022 年 10 月 19 日
感觉正则可以实现,跟 go 没关系
|
3
duan602728596 2022 年 10 月 19 日 我的建议是使用 goquery 替换后,再使用正则把<html><head></head><body>和</body></html>这段去掉
|
4
antxiaoye OP 如果没有一个包可以用的话,我会选择用正则的,但是还是想以最快的方法实现这个功能。
|
5
securityCoding 2022 年 10 月 19 日 via Android
楼上的 goquery
|
6
luvroot 2022 年 10 月 19 日
"github.com/antchfx/htmlquery"
获取到的 doc 对象进行操作,不像要的可以把 node 找到后删除。 h1 找到后 是个 list 。然后循环的进行替换 for index,nodeH1 :=range. xxx { if nodeH1!=nil { origin :=htmlquery.htmlquery.InnerText //根据某种要求进行替换。然后回写 } } |
7
ysc3839 2022 年 10 月 20 日 via Android
不能先取到 body 再 get html 吗?
|
10
Joker123456789 2022 年 10 月 20 日
这不就是个 xml 吗?
|
11
antxiaoye OP 我直接用正则吧,貌似没有合适的库。
|
13
youngster 2022 年 10 月 21 日
go template 试试?
|