Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.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 使用jsoup提取每个html表前的段落_Java_Html_Jsoup_Paragraph - Fatal编程技术网

Java 使用jsoup提取每个html表前的段落

Java 使用jsoup提取每个html表前的段落,java,html,jsoup,paragraph,Java,Html,Jsoup,Paragraph,我有一个要求,我必须提取每个表格前的段落连同表格内容一起形成一个网站 我能够使用jsoup轻松地提取表数据,但无法提取恰好发生在表之前的段落。 我试过以下几件事:- 1. doc.select("p") but its giving extra values because some text in table columns are also in <p> tag. 2. getElementsByTag but no luck. 1。doc.select(“p”),但它提供了

我有一个要求,我必须提取每个表格前的段落连同表格内容一起形成一个网站

我能够使用jsoup轻松地提取表数据,但无法提取恰好发生在表之前的段落。 我试过以下几件事:-

1. doc.select("p") but its giving extra values because some text in table columns are also in <p> tag.
2. getElementsByTag  but no luck.
1。doc.select(“p”),但它提供了额外的值,因为表列中的一些文本也在标记中。
2.getElementsByTag,但没有运气。
样本表:

<p>
<a id="table heading" name="table name"></a>
<b>Sports equipments</b>
</p>
 <table width="98%" cellpadding="0" border="1">
 <tbody>
 <tr valign="top" bgcolor="#ffffcc" align="left">
<th width="25%" scope="col">Company</th>
<th width="25%" scope="col">Product</th>
<th width="20%" scope="col">Availability</th>
<th width="55%" scope="col">Related Information</th>
 <th width="20%" scope="col">
</tr>
<tr>
<td width="18%" valign="top" rowspan="2">
<div>
Nike
<br>
1-800-545-8800
<br>
<br>
<br>
</div>
</td>
<td width="10%" valign="top">
<div>sports kit</div>
</td>
<td width="15%" valign="top" rowspan="2">
<div>Available</div>
</td>
<td width="24%" valign="top" rowspan="2">
<div>Product is available and shipping.</div>
</td>
<td width="16%" valign="top" rowspan="2">Demand increase.</td>
<td width="12%" valign="top" rowspan="2">
<div>
<div>3/26/2014</div>
</td>
</tr>
</table>

运动器材

公司 产品 可利用性 相关信息 耐克
1-800-545-8800


运动套件 可获得的 产品可供选择和运输。 需求增加。 3/26/2014
我必须摘录:

<b>Sports equipments</b> 
运动器材

与表格内容一起

您可以将选择器扩展到此:
“p>b”

因为我没有完整的html,所以很难说它是否能在那里工作,但对于您的示例,它确实:

    final String html = ... // the html of your example
    Document doc = Jsoup.parse(html);

    /*
     * Selects b-tags, that are direct childs of p-tags.
     */
    for( Element element : doc.select("p > b") )
    {
        System.out.println(element);
    }
这张照片是:

<b>Sports equipments</b>
运动器材
documentdoc=Jsoup.connect(html.get();
元素表=文件选择(“表”);
对于(int i=0;i
谢谢,它正在工作,我还找到了另一种方法doc=Jsoup.connect(html.get();Elements table=doc.select(“table”);对于(int i=0;iDocument doc = Jsoup.connect(html).get(); Elements table = doc.select("table”); for (int i = 0; i < table.size(); i++) { Element tablevalue = table.get(i); Element para = tablevalue.previousElementSibling(); System.out.println(para.text()); }