Ce sujet simple explique comment convertir HTML en texte en Java. Dans * Java HTML vers texte brut *, une application de conversion fonctionnant sous Windows, Linux ou macOS peut être développée à l’aide d’interfaces API simples et faciles.
Étapes pour convertir HTML en texte en Java
- Configurez votre projet pour ajouter Aspose.HTML for Java à partir du référentiel Maven
- Incluez la référence à l’espace de noms Aspose.HTML dans votre application
- Lire le contenu du fichier HTML source à l’aide de l’objet String
- Initialiser l’objet HTMLDocument class pour charger la chaîne HTML source
- Initialiser l’objet de classe INodeIterator pour itérer les nœuds et ajouter dans StringBuilder
- Enregistrer le texte extrait du HTML sur le disque
Afin d’extraire du texte de HTML, une application basée sur Java utilisant quelques lignes de code peut être utilisée. Nous lancerons le processus en chargeant le code HTML source dans un objet String, puis en chargeant cette chaîne à l’aide de la classe HTMLDocument. Nous utiliserons ensuite INodeIterator pour extraire, parcourir et ajouter les nœuds HMTL à un StringBuilder. Enfin, le StringBuilder sera enregistré sous forme de fichier texte brut sur le disque.
Code pour convertir HTML en texte en 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); | |
} | |
} |
L’exemple ci-dessus dans * Java convertit HTML en texte brut * en quelques appels d’API. Nous avons créé la classe StyleFilter qui étend la classe NodeFilter et implémente la méthode AcceptNode pour définir les filtres de nœud client et omettre les nœuds indésirables du HTML pendant le processus de conversion.
Dans cette rubrique, nous avons exploré comment extraire du texte de HTML en Java. Si vous êtes intéressé par la conversion du fichier MD au format XPS, passez à la rubrique comment convertir Markdown en XPS en utilisant Java.