Chủ đề đơn giản này là về cách chuyển đổi HTML thành văn bản trong Java. Trong ứng dụng chuyển đổi Java HTML sang văn bản thuần túy chạy trên nền tảng Windows, Linux hoặc macOS có thể được phát triển bằng các giao diện API đơn giản và dễ dàng.
Các bước để chuyển đổi HTML thành văn bản trong Java
- Định cấu hình dự án của bạn để thêm Aspose.HTML for Java từ kho lưu trữ Maven
- Bao gồm tham chiếu đến không gian tên Aspose.HTML trong ứng dụng của bạn
- Đọc nội dung tệp HMTL nguồn bằng đối tượng Chuỗi
- Khởi tạo đối tượng HTMLDocument class để tải Chuỗi HTML nguồn
- Khởi tạo đối tượng lớp INodeIterator để lặp lại các nút và thêm vào StringBuilder
- Lưu văn bản trích xuất từ HTML trên đĩa
Để trích xuất văn bản từ HTML Java dựa trên ứng dụng sử dụng vài dòng mã có thể được sử dụng. Chúng tôi sẽ bắt đầu quá trình bằng cách tải HTML nguồn vào một đối tượng Chuỗi và sau đó tải Chuỗi đó bằng cách sử dụng HTMLDocument class. Sau đó, chúng tôi sẽ sử dụng INodeIterator để trích xuất, duyệt qua và nối các nút HMTL vào StringBuilder. Cuối cùng, StringBuilder sẽ được lưu dưới dạng tệp văn bản thuần túy trên đĩa.
Mã để chuyển đổi HTML thành văn bản trong Java
import com.aspose.html.HTMLDocument; | |
import com.aspose.html.License; | |
import com.aspose.html.dom.Node; | |
import com.aspose.html.dom.traversal.INodeIterator; | |
import com.aspose.html.dom.traversal.filters.NodeFilter; | |
import java.nio.file.Paths; | |
import java.nio.file.Files; | |
import java.io.IOException; | |
import java.nio.charset.Charset; | |
import java.nio.charset.StandardCharsets; | |
import java.util.stream.Collectors; | |
public class HtmlToTextCoverter { | |
public static void main(String[] argsHTMLFile) throws Exception { | |
// Setting Aspose.Html Java API license to use complete features | |
License lic = new License(); | |
lic.setLicense("HTML.Total.Java.lic"); | |
// Read the HTML file in String | |
String content = null; | |
try { | |
content = readFileContent("TestFile.html", StandardCharsets.UTF_8); | |
} catch (IOException exception) { | |
exception.printStackTrace(); | |
return; | |
} | |
// Instantiate HtmlDocument object to load HTML content in String | |
HTMLDocument document = new HTMLDocument(content, ""); | |
// Initialize INodeIterator instance iterate HTML nodes | |
INodeIterator iterator = document.createNodeIterator(document, NodeFilter.SHOW_TEXT, new StyleFilter()); | |
StringBuilder Stringbld = new StringBuilder(); | |
// Temp Node object | |
Node node; | |
// Iterate through Nodes | |
while ((node = iterator.nextNode()) != null) | |
Stringbld.append(node.getNodeValue()); | |
System.out.println(Stringbld.toString()); | |
Files.write(Paths.get("HtmlToText_Java.txt"), Stringbld.toString().getBytes()); | |
} | |
public static String readFileContent(String filePath, Charset encoding) throws IOException { | |
String fileContent = Files.lines(Paths.get(filePath), encoding) | |
.collect(Collectors.joining(System.lineSeparator())); | |
return fileContent; | |
} | |
} | |
class StyleFilter extends NodeFilter { | |
@Override | |
public short acceptNode(Node node) { | |
// In order to skip an element while fetching nodes, mention the name of element in upper case letters | |
return (node.getParentElement().getTagName() == "STYLE" || node.getParentElement().getTagName() == "SCRIPT" | |
? FILTER_REJECT : FILTER_ACCEPT); | |
} | |
} |
Ví dụ trên trong Java chuyển đổi HTML thành văn bản thuần túy trong một số lệnh gọi API. Chúng tôi đã tạo Lớp StyleFilter mở rộng Lớp NodeFilter và triển khai phương thức AcceptNode để đặt bộ lọc nút khách hàng và loại bỏ các nút không mong muốn khỏi HTML trong quá trình chuyển đổi.
Trong chủ đề này, chúng ta đã khám phá cách trích xuất văn bản từ HTML trong Java. Nếu bạn quan tâm đến việc chuyển đổi tệp MD sang định dạng XPS, hãy chuyển sang chủ đề cách chuyển đổi Markdown sang XPS bằng Java.