我在一个文件夹中有多个文件需要解析。我的最终目标是提取一个纯文本文件,该文件包含任何div中具有id属性以“ part_”开头的div的文件。我对jSoup并不熟悉。这是我的html文件之一的示例:
<html>
<head>...</head>
<body>
<div id="document">
<p>..<p>
<div id=part_1> </div>
<div id=part_2> Part 2 : Security measures </div>
<div id=part_3>
Part 3
<p>security To review </p>
<ul> <li> ...</li> <li> ...</li></ul>
<p>measures to adjust </p>
</div>
我想用“ id = part_”提取所有
Document document = Jsoup.parse( new File( "Folder/2.html" ) , "utf-8" );
System.out.println(document.title());
Elements divs = document.select("div");
for (Element div : divs) {
String divid = div.attr("id").toString();
if (divid.equals("part_201")) {
System.out.println(div.text());
}
Ps;我正在处理200多个html文件,最后我应该拥有所有纯文本的.txt文件。
我在一个文件夹中有多个文件需要解析。我的最终目标是提取一个纯文本文件,该文件包含任何div中具有id属性以“ part_”开头的div中的任何内容。我不熟悉...
我认为您正在使此过程变得比所需的复杂。 Jsoup实际上很直观,也很简单:
要选择所有具有id属性和以“ part”开头的值的div,请使用:doc.select("div[id^=part]");
public static void main(String[] args) {
String html = "<html>\n"
+ "<head>...</head>\n"
+ "<body>\n"
+ "<div id=\"document\">\n"
+ " <p>..<p>\n"
+ " <div id=part_1> </div>\n"
+ "<div id=part_2> Part 2 : Security measures </div>\n"
+ "<div id=part_3> \n"
+ " Part 3\n"
+ " <p>security To review </p>\n"
+ " <ul> <li> ...</li> <li> ...</li></ul>\n"
+ " <p>measures to adjust </p> \n"
+ "\n"
+ "</div>";
Document doc = Jsoup.parse(html);
Elements myDivs = doc.select("div[id^=part]");
myDivs.forEach(System.out::println);
}