我正在使用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>
提前致谢
答案 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?