این موضوع ساده در مورد نحوه تبدیل HTML به متن در جاوا است. در جاوا HTML به متن ساده برنامه تبدیل تحت سیستم عامل های Windows، Linux یا macOS را می توان با استفاده از رابط های API ساده و آسان توسعه داد.
مراحل تبدیل HTML به متن در جاوا
- پروژه خود را برای اضافه کردن Aspose.HTML for Java از مخزن Maven پیکربندی کنید
- ارجاع به فضای نام Aspose.HTML را در برنامه خود لحاظ کنید
- محتوای فایل HMTL منبع را با استفاده از شی String بخوانید
- برای بارگیری رشته HTML منبع، شیء HTMLDocument class را مقداردهی کنید
- شی کلاس INodeIterator را به گره های تکراری راه اندازی کنید و در StringBuilder اضافه کنید
- متن استخراج شده از HTML را روی دیسک ذخیره کنید
به منظور استخراج متن از برنامه مبتنی بر HTML Java با استفاده از چند خط کد می توان استفاده کرد. ما این فرآیند را با بارگیری HTML منبع در یک شی String و سپس بارگیری آن رشته با استفاده از HTMLDocument class آغاز خواهیم کرد. سپس از INodeIterator برای استخراج، پیمایش و الحاق گره های HMTL به StringBuilder استفاده می کنیم. در نهایت، StringBuilder به عنوان فایل متنی ساده روی دیسک ذخیره می شود.
کد برای تبدیل HTML به متن در جاوا
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); | |
} | |
} |
مثال بالا در جاوا تبدیل HTML به متن ساده در چند تماس API. ما کلاس StyleFilter را ایجاد کردهایم که کلاس NodeFilter را گسترش میدهد و روش AcceptNode را برای تنظیم فیلترهای گره مشتری و حذف گرههای نامطلوب از HTML در طول فرآیند تبدیل پیادهسازی میکند.
در این مبحث، چگونگی استخراج متن از HTML در جاوا را بررسی کرده ایم. اگر علاقه مند به تبدیل فایل MD به فرمت XPS هستید، به مبحث نحوه تبدیل Markdown به XPS با استفاده از جاوا بروید.