Go pratique des langues : Comment supprimer les balises HTML ?
Dans le développement web, nous devons souvent supprimer les balises HTML pour obtenir du contenu en texte brut, comme l'analyse et le traitement des commentaires, des articles, etc. Pour répondre à cette exigence, le langage Go propose diverses méthodes, et cet article vous en présentera plusieurs.
Méthode 1 : Utiliser le remplacement de chaîne
Le langage Go fournit le package de chaînes pour faire fonctionner les chaînes. Nous pouvons utiliser la méthode strings.ReplaceAll() pour remplacer les balises HTML par des caractères d'espacement afin d'obtenir du contenu en texte brut. Le code d'implémentation spécifique est le suivant :
package main import ( "fmt" "strings" ) func main() { html := "<html><head><title>Test Page</title></head><body><p>Hello, Go!</p></body></html>" // 使用 strings.ReplaceAll() 将 HTML 标签替换为空白字符 text := strings.ReplaceAll(html, "<", " <") text = strings.ReplaceAll(text, ">", "> ") text = strings.TrimSpace(strings.Join(strings.Fields(text), " ")) fmt.Println(text) }
Dans le code ci-dessus, nous utilisons d'abord la méthode strings.ReplaceAll() pour remplacer tous les crochets angulaires gauches ("<") par des espaces + crochets angulaires gauches , et remplacez tous les crochets à angle droit. Les crochets (">") sont remplacés par des crochets à angle droit + des espaces, c'est-à-dire qu'un espace est ajouté entre l'étiquette et le texte pour faciliter l'utilisation ultérieure de la méthode strings.Fields() pour diviser la chaîne en plusieurs sous-chaînes. Ensuite, nous utilisons la méthode strings.Fields() pour diviser la chaîne en plusieurs sous-chaînes, puis utilisons strings.Join() pour connecter ces sous-chaînes avec des caractères d'espacement, et enfin utilisons la méthode strings.TrimSpace() pour supprimer les chaînes aux deux niveaux. se termine. Caractères d’espacement blancs pour obtenir le contenu final en texte brut.
Exécutez le code ci-dessus, le résultat est le suivant :
Test Page Hello, Go!
Le code ci-dessus est simple à implémenter, mais il y a les problèmes suivants :
#🎜🎜 #package main import ( "fmt" "strings" "github.com/PuerkitoBio/goquery" ) func main() { html := "<html><head><title>Test Page</title></head><body><p>Hello, Go!</p></body></html>" doc, _ := goquery.NewDocumentFromReader(strings.NewReader(html)) // 筛选文本节点 var text string doc.Find(":not(script):not(style)").Each(func(_ int, sel *goquery.Selection) { if sel.Children().Length() == 0 { text += sel.Text() + " " } }) fmt.Println(strings.TrimSpace(text)) }
Test Page Hello, Go!
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!