Jak převést HTML na text v Javě

Toto jednoduché téma je o tom, jak převést HTML na text v Javě. V Java HTML na prostý text lze vyvíjet aplikace pro převod na platformách Windows, Linux nebo macOS pomocí jednoduchých a snadných rozhraní API.

Kroky k převodu HTML na text v Javě

  1. Nakonfigurujte svůj projekt tak, aby přidal Aspose.HTML for Java z úložiště Maven
  2. Zahrňte do své aplikace odkaz na jmenný prostor Aspose.HTML
  3. Čtěte obsah zdrojového souboru HMTL pomocí objektu String
  4. Inicializací objektu HTMLDocument class načtete zdrojový řetězec HTML
  5. Inicializujte objekt třídy INodeIterator pro iteraci uzlů a připojení v StringBuilderu
  6. Uložte extrahovaný text z HTML na disk

Pro extrahování textu z HTML lze použít Java aplikaci pomocí několika řádků kódu. Proces zahájíme načtením zdrojového HTML do objektu String a následným načtením tohoto řetězce pomocí třídy HTMLDocument. Potom použijeme INodeIterator k extrahování, procházení a připojení uzlů HMTL do StringBuilderu. Nakonec bude StringBuilder uložen jako prostý textový soubor na disk.

Kód pro převod HTML na text v Javě

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ýše uvedený příklad v Java převádí HTML na prostý text v několika voláních API. Vytvořili jsme třídu StyleFilter, která rozšiřuje třídu NodeFilter a implementujeme metodu AcceptNode pro nastavení filtrů zákaznických uzlů a vynechání nežádoucích uzlů z HTML během procesu převodu.

V tomto tématu jsme prozkoumali jak extrahovat text z HTML v Javě. Máte-li zájem o převod souboru MD do formátu XPS, přejděte k tématu převést Markdown na XPS pomocí Javy.

 Čeština