gpt4 book ai didi

java - 解析 HTML : Getting particular html definition list after a particular paragraph using JSOUP

转载 作者:行者123 更新时间:2023-12-01 14:32:33 26 4
gpt4 key购买 nike

我试图使用 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></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>

假设我们想要获取“Transportation”之后出现的“dl”标签的内容。即内容:

<dl>
<dd>Flying</dd>
<dd>Driving</dd>
<dd>Sailing
<dl>
<dd>Boat</dd>
<dd>Ship</dd>
</dl>
</dd>
</dl>

我最初的尝试是获取段落的索引(例如第1、第2等),然后获取相应的dl,但这似乎不起作用,因为dls可以嵌套。

有人对如何获取此类内容有建议吗?

最佳答案

假设 HTML 结构类似于您的示例,其中 <dl>始终遵循<p> ,你可以:

  • 获取所需的<p>元素通过 doc.getElementsContainingOwnText("txt") ;
  • 获取以下内容 <dl>使用 element.nextElementSibling();

下面是在 HTML 上运行的示例代码:

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);
}

输出:

<dl> 
<dd>Flying</dd>
<dd>Driving</dd>
<dd>Sailing
<dl>
<dd>Boat</dd>
<dd>Ship</dd>
</dl>
</dd>
</dl>

关于java - 解析 HTML : Getting particular html definition list after a particular paragraph using JSOUP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16750381/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com