Go 言語の練習: HTML タグを削除するには?
Web 開発では、コメントや記事などの分析や処理など、プレーン テキスト コンテンツを取得するために HTML タグを削除する必要があることがよくあります。この要件に対応するために、Go 言語にはさまざまなメソッドが用意されており、この記事ではそのうちのいくつかを紹介します。
方法 1: 文字列置換を使用する
Go 言語には、文字列を操作するための strings パッケージが用意されています。 strings.ReplaceAll() メソッドを使用して、HTML タグを空白文字に置き換えて、プレーン テキスト コンテンツを取得できます。具体的な実装コードは次のとおりです。
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) }
上記のコードでは、最初に strings.ReplaceAll() メソッドを使用して、すべての左山括弧 ("<") をスペース左山括弧に置き換えます。すべての直角括弧 (" >") は直角括弧スペースに置き換えられます。つまり、文字列を複数に分割するための string.Fields() メソッドのその後の使用を容易にするために、ラベルとテキストの間にスペースが追加されます。部分文字列。次に、strings.Fields() メソッドを使用して文字列を複数の部分文字列に分割し、次に strings.Join() を使用してこれらの部分文字列を空白文字で接続し、最後に strings.TrimSpace() メソッドを使用して両方の部分文字列を削除します。最終的なプレーンテキストコンテンツを取得するための空白文字。
上記のコードを実行すると、出力は次のようになります:
Test Page Hello, Go!
上記のコードは実装が簡単ですが、いくつかの問題があります:
これらの問題を考慮すると、2 番目の方法を使用できます。
方法 2: Goquery ライブラリを使用する
Goquery は Go 言語の HTML 解析および操作ライブラリであり、便利で柔軟な API を提供します。 Goquery ライブラリを使用して HTML を解析し、テキスト ノードをフィルタリングしてプレーン テキスト コンテンツを取得できます。具体的な実装コードは次のとおりです。
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)) }
上記のコードでは、 goquery.NewDocumentFromReader() メソッドを使用して HTML を goquery.Document オブジェクトに変換します。次に、doc.Find() メソッドを使用して script タグと style タグを除くすべてのノードを選択し、sel.Children().Length() メソッドを使用して現在のノードがテキスト ノードかどうかを判断します。コンテンツをテキスト変数に渡します。最後に、strings.TrimSpace() メソッドを使用して文字列の両端の空白文字を削除し、最終的なプレーン テキスト コンテンツを取得します。
上記のコードを実行すると、出力は次のようになります。
Test Page Hello, Go!
Goquery ライブラリを使用すると、さまざまなタグ形式を処理でき、コードの読み取りと保守が容易になります。
この記事では、HTML タグを削除する 2 つの方法を紹介します。これらの方法では、正規表現もよく使用されます。実際のアプリケーションでは、特定の状況に最適な方法を選択できます。
以上がgolangでhtmlを削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。