Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 分割HTML:使用JSOUP在特定段落后获取特定HTML定义列表_Java_Html_Parsing_Html Parsing_Jsoup - Fatal编程技术网

Java 分割HTML:使用JSOUP在特定段落后获取特定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

我正在尝试使用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>
页面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()获取以下
下面是处理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);
}
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>

飞行
驱动
航行
船
船