Làm cách nào để chuyển đổi thẻ HTML thành chuỗi?

Để chuyển đổi một chuỗi HTML thành HTML hoặc DOM thực, bạn có thể sử dụng API Web DOMParser bằng JavaScript. DOMParser giúp chúng tôi phân tích chuỗi HTML hoặc XML thành các nút Tài liệu hoặc DOM thực

TL;DR

// html string
const htmlStr = "<h1>Hello World!</h1>";

// make a new parser
const parser = new DOMParser();

// convert html string into DOM
const document = parser.parseFromString(htmlStr, "text/html");

Ví dụ: giả sử bạn có một chuỗi HTML gồm thẻ h1 với nội dung là Hello World! như thế này,

// html string
const htmlStr = "<h1>Hello World!</h1>";

Bây giờ, để chuyển đổi chuỗi này thành thẻ HTML thực, chúng ta có thể sử dụng API web DOMParser

Vì vậy, trước tiên, chúng ta phải tạo một trình phân tích cú pháp bằng cách sử dụng từ khóa new như thế này,

// html string
const htmlStr = "<h1>Hello World!</h1>";

// make a new parser
const parser = new DOMParser();

Sau đó, chúng ta có thể sử dụng phương thức

// html string
const htmlStr = "<h1>Hello World!</h1>";
0 trong đối tượng
// html string
const htmlStr = "<h1>Hello World!</h1>";
1 và truyền

  • chuỗi HTML thô làm đối số đầu tiên
  • và loại
    // html string
    const htmlStr = "<h1>Hello World!</h1>";
    2 hoặc loại tài liệu chứa trong chuỗi làm đối số thứ hai. Trong trường hợp của chúng tôi, giá trị loại mime là
    // html string
    const htmlStr = "<h1>Hello World!</h1>";
    3

Có các loại kịch câm khác mà chúng ta có thể sử dụng, chẳng hạn như

  • // html string
    const htmlStr = "<h1>Hello World!</h1>";
    4
  • // html string
    const htmlStr = "<h1>Hello World!</h1>";
    5
  • // html string
    const htmlStr = "<h1>Hello World!</h1>";
    6
  • // html string
    const htmlStr = "<h1>Hello World!</h1>";
    7

Vì vậy, nó sẽ trông như thế này,

// html string
const htmlStr = "<h1>Hello World!</h1>";

// make a new parser
const parser = new DOMParser();

// convert html string into DOM
const document = parser.parseFromString(htmlStr, "text/html");

Bây giờ chuỗi HTML được chuyển thành nút HTML DOM. Giờ đây, bạn có thể sử dụng các phương thức và thuộc tính thông thường có sẵn trên nút DOM, chẳng hạn như

// html string
const htmlStr = "<h1>Hello World!</h1>";
8,
// html string
const htmlStr = "<h1>Hello World!</h1>";
9, v.v.

Chuyển đổi HTML thành văn bản bằng cách xóa tất cả các thẻ khỏi cú pháp HTML, chỉ trả về văn bản có trong đó

cú pháp

htmlToText --html(String) (String)=value

đầu vào

ScriptDesignerRequiredAcceptedTypesDescription--htmlHTMLRequiredTextNội dung ở định dạng HTML sẽ được chuyển đổi thành văn bản

đầu ra

ScriptDesignerAcceptedTypesDescriptionvalueTextTextTrả về văn bản từ HTML không có thẻ HTML

Thí dụ

Chuyển đổi HTML thành văn bản bằng cách xóa tất cả các thẻ

defVar --name convertedText --type String
defVar --name htmlText --type String --value "Insert HTML text here."
// Convert HTML to text.
htmlToText --html "${htmlText}" convertedText=value
logMessage --message "${convertedText}" --type "Info"
Tải tập tin

Nhận xét

Nếu nội dung được chèn vào tham số HTML không ở định dạng "HTML", Văn bản trả về sẽ là cùng một văn bản được chèn

Để làm cho chuỗi có thể in được dưới dạng văn bản thuần túy, chúng ta cần tách chuỗi khỏi các thẻ của nó. Trong bài hôm nay chúng ta sẽ khảo sát một số phương pháp chuyển HTML sang văn bản thuần trong Golang

HTML là ngôn ngữ đánh dấu tiêu chuẩn cho các trang Web

Làm cách nào để chuyển đổi thẻ HTML thành chuỗi?

 

Phương pháp 1. Sử dụng regex và chức năng Thay thế

Chúng tôi đã có một bài viết về cách sử dụng regex trong Golang. Phương pháp này giúp loại bỏ các thẻ văn bản dễ dàng và thiết thực. Các giá trị thẻ HTML được thay thế bằng chuỗi trống bằng hàm replace. Phương pháp này có vấn đề là không thể xóa một số thực thể HTML. Nhưng nó vẫn hoạt động tốt

html:  <div><h1>GoLinuxCloud</h1>
                        <p>This is an html document!</p></div>
-----
html to plain text: GoLinuxCloud
                        This is an html document!
0. ReplaceAllString trả về một bản sao của src, thay thế các kết quả khớp của Regexp bằng chuỗi thay thế repl. Bên trong thay thế, các ký hiệu $ được diễn giải như trong Mở rộng, vì vậy, ví dụ: $1 đại diện cho văn bản của đối sánh phụ đầu tiên

Dưới đây là một ví dụ về chuyển đổi tài liệu HTML thành văn bản thuần túy bằng cách xóa tất cả các thẻ HTML

package main

import (
	"fmt"
	"regexp"
)

func main() {
	// the pattern for html tag
	re := regexp.MustCompile(`<[^>]*>`)
	html := `<div><h1>GoLinuxCloud</h1>
			<p>This is an html document!</p></div>`

	strippedHtml := re.ReplaceAllString(html, "")
	fmt.Println("html: ", html)
	fmt.Println("-----")
	fmt.Println("html to plain text:", strippedHtml)

}

đầu ra

html:  <div><h1>GoLinuxCloud</h1>
                        <p>This is an html document!</p></div>
-----
html to plain text: GoLinuxCloud
                        This is an html document!

 

CONG ĐỌC. Giải thích chức năng Go Anonymous [Ví dụ thực tế]

Phương pháp 2. Phân tích cú pháp HTML thành cây DOM

Cách tiếp cận này để hoàn thành nhiệm vụ là hiệu quả nhất. Gán văn bản HTML cho bên trongHTML của phần tử giả và chúng tôi sẽ nhận được văn bản thuần túy từ các đối tượng của phần tử văn bản

Mô hình Đối tượng Tài liệu (DOM) là một giao diện đa nền tảng và không phụ thuộc vào ngôn ngữ, xử lý tài liệu XML hoặc HTML dưới dạng cấu trúc cây trong đó mỗi nút là một đối tượng đại diện cho một phần của tài liệu. DOM đại diện cho một tài liệu với một cây logic. Mỗi nhánh của cây kết thúc bằng một nút và mỗi nút chứa các đối tượng

Với gói HTML, chúng ta có thể dễ dàng sử dụng hai bộ API cơ bản để phân tích cú pháp HTML. API mã thông báo và API phân tích cú pháp nút dựa trên cây

Đây là một tệp HTML mẫu

Quảng cáo

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Pets</title>
</head>
<body>

<p>
    A list of pets
</p>

<ul>
    <li>dog</li>
    <li>cat</li>
    <li>bird</li>
    <li>rabbit</li>
</ul>

<footer>
    Go Linux Cloud page
</footer>

</body>
</html>

Đây là hàm

html:  <div><h1>GoLinuxCloud</h1>
                        <p>This is an html document!</p></div>
-----
html to plain text: GoLinuxCloud
                        This is an html document!
1 đọc chuỗi HTML và phân tích nó thành cây DOM

func parse(text string) (data []string) {
	tkn := html.NewTokenizer(strings.NewReader(text))
	var vals []string

	for {
		tt := tkn.Next()
		switch {
		case tt == html.ErrorToken:
			return vals
		// check if it is a text node
		case tt == html.TextToken:
			t := tkn.Token()
			vals = append(vals, t.Data)
		}
	}
}

Chúng tôi sẽ duyệt qua tất cả các nút văn bản và thêm tất cả văn bản vào một lát, sau đó in ra lát vào nhật ký bảng điều khiển

package main

import (
	"fmt"
	"strings"

	"golang.org/x/net/html"
)

func main() {
	data := parse(text)
	fmt.Println(data)

}

func parse(text string) (data []string) {
	tkn := html.NewTokenizer(strings.NewReader(text))
	var vals []string

	for {
		tt := tkn.Next()
		switch {
		case tt == html.ErrorToken:
			return vals
		// check if it is a text node
		case tt == html.TextToken:
			t := tkn.Token()
			vals = append(vals, t.Data)
		}
	}
}

var text = `<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Pets</title> </head> <body> <p> A list of pets </p> <ul> <li>dog</li> <li>cat</li> <li>bird</li> <li>rabbit</li> </ul> <footer> Go Linux Cloud page </footer> </body> </html>`

đầu ra

[        Pets        A list of pets      dog   cat   bird   rabbit      Go Linux Cloud page     ]

 

CONG ĐỌC. Khai báo bản đồ hằng số golang - có thể không?

Phương pháp 3. Sử dụng thư viện html2text

Gói Golang đơn giản để chuyển đổi HTML thành văn bản thuần túy (không có phụ thuộc không chuẩn)
Nó chuyển đổi các thẻ HTML thành văn bản và cũng phân tích các thực thể HTML thành các ký tự mà chúng đại diện. Phần

html:  <div><h1>GoLinuxCloud</h1>
                        <p>This is an html document!</p></div>
-----
html to plain text: GoLinuxCloud
                        This is an html document!
2 của tài liệu HTML, cũng như hầu hết các thẻ khác bị loại bỏ nhưng các liên kết được chuyển đổi đúng thành thuộc tính href của chúng

Cài đặt

go get github.com/k3a/html2text

Cách sử dụng

Đây là một ví dụ đơn giản về việc sử dụng

html:  <div><h1>GoLinuxCloud</h1>
                        <p>This is an html document!</p></div>
-----
html to plain text: GoLinuxCloud
                        This is an html document!
3 để lấy văn bản thuần túy từ tài liệu HTML

package main

import (
	"fmt"

	"github.com/k3a/html2text"
)

var text = `<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Pets</title> </head> <body> <p> A list of pets </p> <ul> <li>dog</li> <li>cat</li> <li>bird</li> <li>rabbit</li> </ul> <footer> Go Linux Cloud page </footer> </body> </html>`

func main() {
	plain := html2text.HTML2Text(text)
	fmt.Println(plain)

}

đầu ra

Quảng cáo

A list of pets 


dog
cat
bird
rabbit
 Go Linux Cloud page

 

Tóm lược

Các ví dụ dưới đây cho thấy cách chuyển đổi một chuỗi hoặc tệp HTML thành văn bản thuần túy. Lưu ý rằng, bạn không nên cố phân tích cú pháp HTML bằng regex. HTML không phải là ngôn ngữ thông thường, vì vậy bất kỳ biểu thức chính quy nào bạn nghĩ ra đều có thể sẽ thất bại trong một số trường hợp bí truyền. Vì vậy, phương pháp tốt nhất để chuyển đổi tài liệu HTML thành văn bản thuần túy là sử dụng html2text hoặc phân tích văn bản thành cây DOM và duyệt qua các nút văn bản trong cây

Làm cách nào để lưu trữ các thẻ HTML trong chuỗi?

Bạn có thể lưu trữ mã HTML trong chuỗi của mình chỉ bằng cách đặt mã vào trong dấu ngoặc kép . Điều duy nhất bạn phải ghi nhớ là bạn cần "thoát" các trích dẫn trong chuỗi của mình ở bất cứ đâu bạn tìm thấy chúng trong mã HTML của mình. Dấu gạch chéo ngược \ sẽ thoát khỏi "" trong mã HTML của bạn.

Làm cách nào để chuyển đổi thẻ HTML thành chuỗi trong JS?

Thông số. tên thẻ. Thông số này là bắt buộc. Nó chỉ định tên thẻ của các phần tử để lấy
Thuộc tính HTML DOM bên trong HTML. Thuộc tính này đặt/trả về nội dung HTML (HTML bên trong) của một phần tử. cú pháp. Trả về thuộc tính InternalHTML

Làm cách nào để chuyển đổi thẻ HTML thành chuỗi trong C#?

Các bước chuyển đổi HTML thành văn bản trong C# .
Cài đặt Aspose. HTML cho. NET từ trình quản lý gói NuGet
Bao gồm Aspose. Không gian tên HTML trong dự án của bạn
Tải nội dung tệp HTML vào Chuỗi
Tạo một thể hiện của lớp HTMLDocument để tải Chuỗi chứa HTML

Làm cách nào để chuyển đổi HTML thành chuỗi trực tuyến?

Nhấp vào nút URL, Nhập URL và Gửi . Công cụ này hỗ trợ tải File HTML để chuyển đổi sang TEXT. Nhấp vào nút Tải lên và chọn Tệp. HTML to Plain TEXT Converter Online hoạt động tốt trên Windows, MAC, Linux, Chrome, Firefox, Edge và Safari.