我有点进退两难。我需要通过JSoup解析一个HTML块,这个块后来被传递给另一个处理jsoup元素的类。不幸的是,当我将一个块传递给表示表一部分的Jsoup时,出于某种奇怪的原因,jsoup只是抛出了所有的html,只给了我文本。下面是一个示例:
<tr>
<td>Declared</td>
<td>Other Supported Languages</td>
<td>/ATP_ETK_89078_1006/atp_etk_89078_1006_p4/nonshared/E-trak_API_Build/obfuscated/vna.dll</td>
<td align="right">1519616</td>
<td align="right"></td>
<td align="right"></td>
<td>COM DEV</td>
<td>Unspecified</td>
<td>License for COM DEV</td>
<td>Component (Dynamic Library)</td>
<td>100%</td>
<td style="text-align: center;"></td>
<td></td>
<td></td>
<td valign="top"></td>
</tr>
<tr>
<td>Declared</td>
<td>Other Supported Languages</td>
<td>/ATP_ETK_89078_1006/atp_etk_89078_1006_p4/nonshared/E-trak_API_Build/obfuscated/vna.dll</td>
<td align="right">1519616</td>
<td align="right"></td>
<td align="right"></td>
<td>COM DEV</td>
<td>Unspecified</td>
<td>License for COM DEV</td>
<td>Component (Dynamic Library)</td>
<td>100%</td>
<td style="text-align: center;"></td>
<td></td>
<td></td>
<td valign="top"></td>
</tr>这是片段,正如您所看到的,它只是表示来自一个表的两行。
然而,Jsoup产生了以下内容:
<html>
<head></head>
<body>
Declared Other Supported Languages /ATP_ETK_89078_1006/atp_etk_89078_1006_p4/nonshared/E-trak_API_Build/obfuscated/vna.dll 1519616 COM DEV Unspecified License for COM DEV Component (Dynamic Library) 100%
Declared Other Supported Languages /ATP_ETK_89078_1006/atp_etk_89078_1006_p4/nonshared/E-trak_API_Build/obfuscated/vna.dll 1519616 COM DEV Unspecified License for COM DEV Component (Dynamic Library) 100%
</body>
</html>现在,如果表的原始头(包括表打开/关闭标头)在那里,它似乎可以工作,但这违背了这个片段解析的全部目的,因为HTML文档可能会变得相当庞大。
任何帮助都将不胜感激。
发布于 2012-10-03 11:21:20
用JSoup 1.7.1测试->相同的问题。
我想,唯一的方法是将您的片段包装到一个table-tag中。
String html = ... // your html
Document doc = Jsoup.parse(html);
// doesn't work as you said
String html = ... // your html
Document doc = Jsoup.parse("<table>" + html + "</table>");
// works我不知道在你的情况下你是如何使用J汤的,但也许你可以这样想:
public String doSomethingWithFragment(String html)
{
Document doc = Jsoup.parse("<table>" + html + "</table>");
Elements fragment = doc.select("tbody > *");
// Do something with 'fragment' here ...
}在这个例子中,fragment就像上面发布的一样包含了HTML,您可以用它做进一步的事情。
我知道这是一个非常奇怪的解决办法--添加一些东西,并在下一步删除它。但是无论如何..。有用(我希望) :-) .
https://stackoverflow.com/questions/12693739
复制相似问题