Jak przekonwertować HTML na tekst w Javie

Ten prosty temat dotyczy tego, jak konwertować HTML na tekst w Javie. W Java HTML do zwykłego tekstu aplikacja do konwersji działająca na platformach Windows, Linux lub macOS może być rozwijana przy użyciu prostych i łatwych interfejsów API.

Kroki, aby przekonwertować HTML na tekst w Javie

  1. Skonfiguruj swój projekt, aby dodać Aspose.HTML for Java z repozytorium Maven
  2. Dołącz odwołanie do przestrzeni nazw Aspose.HTML w swojej aplikacji
  3. Odczytaj zawartość źródłowego pliku HMTL za pomocą obiektu String
  4. Zainicjuj obiekt HTMLDocument class, aby załadować źródłowy ciąg HTML
  5. Zainicjuj obiekt klasy INodeIterator, aby iterować węzły i dołączyć w StringBuilder
  6. Zapisz wyodrębniony tekst z HTML na dysku

W celu wyodrębnienia tekstu z HTML można użyć aplikacji opartej na Javie za pomocą kilku linijek kodu. Zainicjujemy ten proces, ładując źródłowy kod HTML do obiektu String, a następnie ładując ten ciąg przy użyciu HTMLDocument class. Następnie użyjemy INodeIterator do wyodrębnienia, przejścia i dołączenia węzłów HMTL do StringBuilder. Na koniec StringBuilder zostanie zapisany jako zwykły plik tekstowy na dysku.

Kod do konwersji HTML na tekst w Javie

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);
}
}

Powyższy przykład w Java konwertuje HTML na zwykły tekst w kilku wywołaniach API. Stworzyliśmy klasę StyleFilter, która rozszerza klasę NodeFilter i zaimplementowaliśmy metodę AcceptNode w celu ustawienia filtrów węzłów klienta i pominięcia niepożądanych węzłów z HTML podczas procesu konwersji.

W tym temacie zbadaliśmy jak wyodrębnić tekst z HTML w Javie. Jeśli interesuje Cię konwersja pliku MD do formatu XPS, przejdź do tematu jak przekonwertuj Markdown na XPS przy użyciu Java.

 Polski