Ця проста тема про те, як перетворити HTML на текст у Java. У Java HTML у звичайний текст програму для перетворення, що працює на платформах Windows, Linux або macOS, можна розробити за допомогою простих і легких інтерфейсів API.
Кроки для перетворення HTML на текст у Java
- Налаштуйте свій проект, щоб додати Aspose.HTML for Java зі сховища Maven
- Додайте посилання на простір імен Aspose.HTML у свою заявку
- Прочитайте вміст вихідного файлу HMTL за допомогою об’єкта String
- Ініціалізуйте об’єкт HTMLDocument class, щоб завантажити вихідний рядок HTML
- Ініціалізуйте об’єкт класу INodeIterator для повторення вузлів і додавання в StringBuilder
- Збережіть витягнутий текст із HTML на диску
Щоб витягнути текст із HTML-додатку на основі Java, можна використати кілька рядків коду. Ми розпочнемо процес із завантаження вихідного HTML в об’єкт String і подальшого завантаження цього рядка за допомогою класу HTMLDocument. Потім ми використаємо INodeIterator для вилучення, проходження та додавання вузлів HMTL до StringBuilder. Нарешті, StringBuilder буде збережено як звичайний текстовий файл на диску.
Код для перетворення HTML у текст у 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); | |
} | |
} |
Наведений вище приклад у Java перетворює HTML на звичайний текст за кілька викликів API. Ми створили клас StyleFilter, який розширює клас NodeFilter і реалізував метод AcceptNode для встановлення фільтрів вузлів клієнта та виключення небажаних вузлів із HTML під час процесу перетворення.
У цій темі ми досліджували як отримати текст із HTML у Java. Якщо вас цікавить перетворення файлу MD у формат XPS, перейдіть до теми, як конвертувати Markdown у XPS за допомогою Java.