我正在使用Jericho解析Html。 我有一个html页面,我需要在两个特定文本之间提取数据。
<table width="100%" align="left">
<tr><td>
<b> Item 7. </b>
</td></tr>
</table>
...........other data...........
other tags
<table width="100%" align="left">
<tr><td>
<b> fd ..fds </b>
</td></tr>
</table>
...........other data ends...........
<table width="100%" align="left">
<tr><td>
<b> Item 8. </b>
</td></tr>
</table>
如何使用jerchio在第7项和第8项之间提取数据。
先谢谢
答案 0 :(得分:0)
在我的情况下,'项目7'和'项目8'在'粗体'后面看到
我迭代了元素列表。我的代码
for (Element allElement : allElements) {
if(strtInd==false){
if((allElement.getStartTag().toString().toLowerCase()).startsWith(("<table").toLowerCase())){
List<Element> boldElem = allElement.getAllElements(HTMLElementName.B);
if(null !=boldElem && boldElem.size()>0){
Element e1 = boldElem.get(0);
if(null != e1&& (e1.getTextExtractor().toString().toLowerCase()).startsWith(("Item 7.").toLowerCase())){
prevElement = allElement;
strtInd = true;
}
}
}
}else{
if((allElement.getStartTag().toString().toLowerCase()).startsWith(("<table").toLowerCase())){
List<Element> boldElem = allElement.getAllElements(HTMLElementName.B);
if(null !=boldElem && boldElem.size()>0){
Element e1 = boldElem.get(0);
if(null != e1&& (e1.getTextExtractor().toString().toLowerCase()).startsWith(("Item 8.").toLowerCase())){
System.out.println(e1.getTextExtractor().toString());
strtInd = false;
break;
}
}
}
sBuff.append(allElement.getFirstElement());
prevElement =allElement;
System.out.println(allElement);
}
}