Java 解析复杂li标记
我正在尝试使用Jsoup解析HTML文件。HTML中的某些文本不在标记下Java 解析复杂li标记,java,html,parsing,jsoup,html-parsing,Java,Html,Parsing,Jsoup,Html Parsing,我正在尝试使用Jsoup解析HTML文件。HTML中的某些文本不在标记下 <li class="inactive"> <span class="status label">inactive</span> <a href="/officers/144662696" class="officer inactive" title="more info on MILLTOWN CORPORATE SERVICES"> MILLTOWN
<li class="inactive">
<span class="status label">inactive</span>
<a href="/officers/144662696" class="officer inactive" title="more info on MILLTOWN CORPORATE SERVICES">
MILLTOWN CORPORATE SERVICES
</a>
member,
<span class="status label">inactive</span>
<a href="/companies/us_wv/193180" class="company inactive revoked_(failure_to_file_annual_report)" title="More Free And Open Company Data On EASTBRIDGE L.L.C. (West Virginia (US), 193180)">
EASTBRIDGE L.L.C.
</a>
(West Virginia (US),
<span class="start_date">25 May 2000</span>-<span class="end_date"> 1 Aug 2002</span>)
</li>
不活跃的
委员:,
不活跃的
(西弗吉尼亚州(美国),
(2000年5月25日至2002年8月1日)
我能够读取标签中的所有内容,但我正在尝试获取值(美国西弗吉尼亚州)和成员
是否有一种方法可以获取类外部和
li
标记内部的值 您可能正在寻找类似的东西
这只获取当前元素的文本,而不是所有子元素的组合文本
Element listItem = doc.select("li.inactive").first();
System.out.println(listItem.ownText()); // prints "member, (West Virginia (US), -)"
你可能正在寻找类似的东西 这只获取当前元素的文本,而不是所有子元素的组合文本
Element listItem = doc.select("li.inactive").first();
System.out.println(listItem.ownText()); // prints "member, (West Virginia (US), -)"
您还可以使用前面的标记来获取未嵌入任何标记中的文本节点。如果我没弄错的话,您希望在每个文本节点后面都有一个标记。尝试以下方法:
String html = "<li class=\"inactive\"> \n"
+ " <span class=\"status label\">inactive</span> \n"
+ " <a href=\"/officers/144662696\" class=\"officer inactive\" title=\"more info on MILLTOWN CORPORATE SERVICES\">\n"
+ " MILLTOWN CORPORATE SERVICES\n"
+ " </a>\n"
+ " member, \n"
+ " <span class=\"status label\">inactive</span> \n"
+ " <a href=\"/companies/us_wv/193180\" class=\"company inactive revoked_(failure_to_file_annual_report)\" title=\"More Free And Open Company Data On EASTBRIDGE L.L.C. (West Virginia (US), 193180)\">\n"
+ " EASTBRIDGE L.L.C.\n"
+ " </a> \n"
+ " (West Virginia (US), \n"
+ " <span class=\"start_date\">25 May 2000</span>-<span class=\"end_date\"> 1 Aug 2002</span>) \n"
+ "</li>";
Document doc = Jsoup.parse(html);
Elements links = doc.select("a");
for(Element e : links){
System.out.println(e.nextSibling().toString());
}
String html=“\n”
+“不活动\n”
+“\n”
+成员,\n
+“不活动\n”
+“\n”
+(美国西弗吉尼亚州),\n
+“2000年5月25日至2002年8月1日\n”
+“ ”;
Document doc=Jsoup.parse(html);
元素链接=文件选择(“a”);
用于(元素e:链接){
System.out.println(例如nextSibling().toString());
}
您还可以使用前面的标记获取未嵌入任何标记中的文本节点。如果我没弄错的话,您希望在每个文本节点后面都有一个标记。尝试以下方法:
String html = "<li class=\"inactive\"> \n"
+ " <span class=\"status label\">inactive</span> \n"
+ " <a href=\"/officers/144662696\" class=\"officer inactive\" title=\"more info on MILLTOWN CORPORATE SERVICES\">\n"
+ " MILLTOWN CORPORATE SERVICES\n"
+ " </a>\n"
+ " member, \n"
+ " <span class=\"status label\">inactive</span> \n"
+ " <a href=\"/companies/us_wv/193180\" class=\"company inactive revoked_(failure_to_file_annual_report)\" title=\"More Free And Open Company Data On EASTBRIDGE L.L.C. (West Virginia (US), 193180)\">\n"
+ " EASTBRIDGE L.L.C.\n"
+ " </a> \n"
+ " (West Virginia (US), \n"
+ " <span class=\"start_date\">25 May 2000</span>-<span class=\"end_date\"> 1 Aug 2002</span>) \n"
+ "</li>";
Document doc = Jsoup.parse(html);
Elements links = doc.select("a");
for(Element e : links){
System.out.println(e.nextSibling().toString());
}
String html=“\n”
+“不活动\n”
+“\n”
+成员,\n
+“不活动\n”
+“\n”
+(美国西弗吉尼亚州),\n
+“2000年5月25日至2002年8月1日\n”
+“ ”;
Document doc=Jsoup.parse(html);
元素链接=文件选择(“a”);
用于(元素e:链接){
System.out.println(例如nextSibling().toString());
}
不确定jsoup,但您可以尝试获取元素的innerHTML
。寻找一个api,它公开元素的html而不是文本值。我已经使用Jsoup提取了所有其他字段。但是我将尝试获取innerHTML。不确定jsoup,但是您可以尝试获取元素的innerHTML
。寻找一个api,它公开元素的html而不是文本值。我已经使用Jsoup提取了所有其他字段。但我将尝试获取innerHTML。