【问题标题】:Extract data between two specific text using Jericho使用 Jericho 在两个特定文本之间提取数据
【发布时间】:2013-04-16 10:33:32
【问题描述】:

我正在使用 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 提取 Item 7.Item 8. 之间的数据。

提前致谢

【问题讨论】:

    标签: java html-parsing jericho-html-parser


    【解决方案1】:

    在我的例子中,'Item 7' 和 'Item 8' 出现在'bold' 中,然后是

    我迭代了元素列表。我的代码

    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);
                }
    
    
            }
    

    【讨论】:

      猜你喜欢
      • 2023-01-04
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多