Maison >développement back-end >Golang >Comment supprimer le HTML dans Golang
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)) }Dans le code ci-dessus, nous utilisons la méthode goquery.NewDocumentFromReader() pour convertir le HTML en un objet goquery.Document. Ensuite, nous utilisons la méthode doc.Find() pour sélectionner tous les nœuds à l'exception des balises de script et de style, et utilisons la méthode sel.Children().Length() pour déterminer si le nœud actuel est un nœud de texte. Si tel est le cas, ajoutez-le. contenu à la variable texte. Enfin, utilisez la méthode strings.TrimSpace() pour supprimer les caractères vides aux deux extrémités de la chaîne afin d'obtenir le contenu final en texte brut. Exécutez le code ci-dessus, le résultat est le suivant :
Test Page Hello, Go!L'utilisation de la bibliothèque Goquery peut gérer différents formats de balises et le code est plus facile à lire et à maintenir. Cet article présente deux méthodes pour supprimer les balises HTML, parmi lesquelles les expressions régulières sont également couramment utilisées. Dans les applications pratiques, nous pouvons choisir la méthode la plus adaptée à des situations spécifiques.
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!