-1

我正在使用 JSOUP,我有类似的 html/文本:

<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>

提前致谢

4

3 回答 3

1

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

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

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

于 2011-02-11T22:54:30.460 回答
0

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

这是开源 HTML 解析器的列表。

于 2011-02-11T22:43:29.247 回答
-1

加载一个临时 DOM(一个 DOMFragment http://ejohn.org/blog/dom-documentfragments/)然后转向 jQuery 在片段中找到你想要的 div 怎么样?

于 2011-02-12T01:29:58.457 回答