【问题标题】:Parsing HTML elements in Apache Tika在 Apache Tika 中解析 HTML 元素
【发布时间】:2013-10-14 19:44:15
【问题描述】:

如何使用 Apache TIKA 检索 ID 为 48227783 的 <DIV> 值?

<div class="postcolor post_text" data-postid="48227783">Ownage!<br /></div>

我尝试检索值 'Ownage!' ,我尝试使用 mapSafeElement , DefaultHtmlMapper 对象似乎无法在任何地方找到它。

谢谢。

【问题讨论】:

    标签: java html-parsing apache-tika


    【解决方案1】:

    我将覆盖 mapSafeElement、mapSafeAttribute 和 isDiscardElement 方法以在解析期间访问此元素,因为 Tika 可能会拒绝非标准/非“安全”属性“data-postid” - 如下所示。

    然后,您将通过 ParseContext 对象使用此类,如下所示:

    InputStream input = <your Uri/file/string input stream>;
    ParseContext parseContext = new ParseContext();
    parseContext.set(HtmlMapper.class, AllTagMapper.class.newInstance());       
    
    HtmlParser parser = new HtmlParser();
    parser.parse(input, new ContentHandler(), new Metadata(), parseContext);
    
    // Override HtmlMapper to process all tags and tributes. 
    
    class AllTagMapper implements HtmlMapper {
    
        @Override
        public String mapSafeElement(String name) {
            return name.toLowerCase();
        }
    
        @Override
        public boolean isDiscardElement(String name) {
            return false;
        }
    
        @Override
        public String mapSafeAttribute(String elementName, String attributeName) {
            return attributeName.toLowerCase();
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-05
      • 2017-05-07
      • 1970-01-01
      • 1970-01-01
      • 2017-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多