Java 分割HTML:使用JSOUP在特定段落后获取特定HTML定义列表
我正在尝试使用JSoup和Java获取满足条件的特定标记之后的定义列表(或任何标记)的内容。作为一个例子,让我们假设我们有一个html文档,如下所示Java 分割HTML:使用JSOUP在特定段落后获取特定HTML定义列表,java,html,parsing,html-parsing,jsoup,Java,Html,Parsing,Html Parsing,Jsoup,我正在尝试使用JSoup和Java获取满足条件的特定标记之后的定义列表(或任何标记)的内容。作为一个例子,让我们假设我们有一个html文档,如下所示 <p>PageID: 2816; NS: 0; Title: some text; Image url: Content: {{Wort der Woche}} {{Siehe auch}} </p> <h2><span class="1" id="e1">some text</span&g
<p>PageID: 2816; NS: 0; Title: some text;
Image url:
Content:
{{Wort der Woche}}
{{Siehe auch}}
</p>
<h2><span class="1" id="e1">some text</span></h2>
<h3><span class="1" id="e2">some text</span></h3>
<p>{{Transportation}}
</p>
<dl>
<dd>Flying</dd>
<dd>Driving</dd>
<dd>Sailing
<dl>
<dd>Boat</dd>
<dd>Ship</dd>
</dl>
</dd>
</dl>
<p>{{Activities}}
</p>
<dl>
<dd>Shopping</dd>
<dd>Painting</dd>
</dl>
页面ID:2816;NS:0;标题:一些文字;
图像url:
内容:
{{Woche麦汁}
{{Siehe auch}}
一些文本
一些文本
{{运输}}
飞行
驱动
航行
船
船
{{活动}}
购物
绘画
假设我们想要得到“Transportation”之后出现的“dl”标记的内容。即:
<dl>
<dd>Flying</dd>
<dd>Driving</dd>
<dd>Sailing
<dl>
<dd>Boat</dd>
<dd>Ship</dd>
</dl>
</dd>
</dl>
飞行
驱动
航行
船
船
我最初的尝试是获取段落的索引(例如,第1、第2等),然后获取相应的dl,但这似乎不起作用,因为可以嵌套dl
有人对如何获取此类内容有什么建议吗?假设HTML结构与您的示例类似,其中
始终遵循
,您可以:
- 通过
获取所需的doc.getElementsContainingOwnText(“txt”)
元素李>
- 使用
元素.nextElementSibling()获取以下
代码> - 使用
public static void main(String[] args) {
Document doc = Jsoup.parse("<p>PageID: 2816; NS: 0; Title: some text; \r\nImage url: \r\nContent:\r\n{{Wort der Woche}}\r\n{{Siehe auch}}\r\n</p>\r\n<h2><span class=\"1\" id=\"e1\">some text</span></h2>\r\n<h3><span class=\"1\" id=\"e2\">some text</span></h3>\r\n\r\n<p>{{Transportation}}\r\n</p>\r\n<dl>\r\n <dd>Flying</dd>\r\n <dd>Driving</dd>\r\n <dd>Sailing\r\n <dl>\r\n <dd>Boat</dd>\r\n <dd>Ship</dd>\r\n </dl>\r\n </dd>\r\n</dl>\r\n\r\n<p>{{Activities}}\r\n</p>\r\n<dl>\r\n <dd>Shopping</dd>\r\n <dd>Painting</dd>\r\n</dl>");
Elements e = doc.getElementsContainingOwnText("{{Transportation}}");
Element nextDL = e.get(0).nextElementSibling();
System.out.println(nextDL);
}
publicstaticvoidmain(字符串[]args){
Document doc=Jsoup.parse(PageID:2816;NS:0;Title:some text;\r\n图像url:\r\n内容:\r\n{{Wort der Woche}}\r\n{Siehe auch}}\r\n\r\n一些文本\r\n一些文本\r\n\r\n{Transportation}\r\n\r\n\r\n飞行\r\n驾驶\r\n帆船\r\n\r\n\r\n\r\n\r\n{{Activities}\r\n\r\n\r\n购物\r\n绘画\r\n”);
元素e=doc.getElementsContainingOwnText(“{{Transportation}}”);
元素nextDL=e.get(0).nextElementSibling();
System.out.println(nextDL);
}
输出:
<dl>
<dd>Flying</dd>
<dd>Driving</dd>
<dd>Sailing
<dl>
<dd>Boat</dd>
<dd>Ship</dd>
</dl>
</dd>
</dl>
飞行
驱动
航行
船
船