✌️
我正试图用它的子元素替换html父元素;github.com/PuerkitoBio/goquery";。但是,ReplaceWithSelection不会替换任何内容,并且所选内容保持不变。
package main
import (
"os"
"strings"
"github.com/PuerkitoBio/goquery"
)
var html = `
<section>
<article>
<h2>Article 1</h2>
<p>Text for article #1</p>
</article>
<article>
<h2>Article 2</h2>
<p>Text for article #2</p>
</article>
</section>
`
func main() {
qHtml, err := goquery.NewDocumentFromReader(strings.NewReader(html))
if err != nil {
panic(err)
}
section := qHtml.Find(`section`)
sectionChildren := section.Children().Clone()
section.ReplaceWithSelection(sectionChildren)
goquery.Render(os.Stdout, section)
}
由于section
只引用了实际Document
中我们正在使用ReplaceWithSelection
的一个子级,因此更改将反映在实际文档中,而不是可能已从实际Document
中替换的引用,但由于您仍然有引用,因此您要用实际更改来查看它。
要查看更改,而不是使用section
,请使用进行更改的Document
。
更改
goquery.Render(os.Stdout, section)
到
goquery.Render(os.Stdout, qHtml.Contents())