如何让第一个div包含html / text中的文本?

时间:2011-02-11 22:39:34

标签: java jsoup

我正在使用JSOUP 我有html / text之类的东西:

<html><head><style type="text/css">
</style></head>
<body><div style="font-family:times new roman,new york,times,serif;font-size:14pt">first text<br><div><br></div><div style="font-family: times new roman,new york,times,serif; font-size: 14pt;"><br><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><font size="2" face="Tahoma"><hr size="1"><b><span style="font-weight: bold;">one:</span></b> second text<br><b><span style="font-weight: bold;">two:</span></b> third text<br><b><span style="font-weight: bold;">three:</span></b> fourth text<br><b><span style="font-weight: bold;">five:</span></b> fifth text<br></font><br>

我要提取包含文本的第一个div(整个div) 获得如下输出:

<div style="font-family:times new roman,new york,times,serif;font-size:14pt">first text<br></div>

还有一个问题是如何获取包含文本的第一个html标记(通常),这意味着第一个文本可能位于<p><span>

提前致谢

3 个答案:

答案 0 :(得分:1)

您可以使用SAX样式的HTML解析器,例如TagSoup

为此,使用扩展DefaultHandler初始化解析器以缓存本地成员变量中访问的最后一个元素,然后检测第一次调用characters(...)方法的时间并打印出缓存元素和文本结果。

http://sax.sourceforge.net/quickstart.html查看如何设置解析器的方向。

答案 1 :(得分:0)

使用HTML解析器,或者,如果您知道HTML是XHTML,则使用XSLT处理器

Here is the list开源HTML解析器。

答案 2 :(得分:-1)

如何加载临时DOM(DOM片段http://ejohn.org/blog/dom-documentfragments/)然后转向jQuery以在片段中找到所需的div?