Այս պարզ թեման այն մասին է, թե ինչպես փոխակերպել HTML-ը Java-ի տեքստի: Java HTML-ում դեպի պարզ տեքստ փոխակերպման հավելված, որն աշխատում է Windows, Linux կամ macOS հարթակներում, կարող է մշակվել՝ օգտագործելով պարզ և հեշտ API միջերեսներ:
Java-ում HTML-ը տեքստի փոխարկելու քայլեր
- Կազմաձևեք ձեր նախագիծը, որպեսզի ավելացնեք Aspose.HTML for Java Maven-ի պահոցից
- Ձեր հավելվածում ներառեք Aspose.HTML անվանատարածքի հղումը
- Կարդացեք աղբյուրի HMTL ֆայլի բովանդակությունը՝ օգտագործելով String օբյեկտը
- Նախաձեռնեք HTMLDocument class օբյեկտը` սկզբնաղբյուր HTML տողը բեռնելու համար
- Նախաձեռնեք INodeIterator դասի օբյեկտը կրկնվող հանգույցների համար և միացրեք StringBuilder-ում
- Պահպանեք HTML-ից հանված տեքստը սկավառակի վրա
HTML Java*-ի վրա հիմնված հավելվածից *տեքստ հանելու համար կարող են օգտագործվել մի քանի տող կոդ: Մենք կսկսենք գործընթացը՝ բեռնելով աղբյուրի HTML-ը String օբյեկտի մեջ և այնուհետև բեռնելով այդ տողը՝ օգտագործելով HTMLDocument դասը: Այնուհետև մենք կօգտագործենք INodeIterator՝ հանելու, անցնելու և HMTL հանգույցները StringBuilder-ին միացնելու համար: Վերջապես, StringBuilder-ը կպահվի որպես պարզ տեքստային ֆայլ սկավառակի վրա:
Կոդ՝ Java-ում 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); | |
} | |
} |
Վերոնշյալ օրինակը Java-ում փոխակերպում է HTML-ը պարզ տեքստի API-ի մի քանի զանգերում: Մենք ստեղծել ենք StyleFilter դասը, որը ընդլայնում է NodeFilter դասը և իրականացնում է AcceptNode մեթոդը՝ հաճախորդի հանգույցների զտիչները սահմանելու և փոխակերպման գործընթացում HTML-ից անցանկալի հանգույցները բաց թողնելու համար։
Այս թեմայում մենք ուսումնասիրել ենք ինչպես հանել տեքստը HTML-ից Java-ում: Եթե դուք հետաքրքրված եք MD ֆայլի XPS ձևաչափի փոխակերպմամբ, անցեք թեմային՝ ինչպես անել փոխարկել Markdown-ը XPS-ի Java-ի միջոցով: