Tika XML文件提取示例

本文概述

为了提取xml文件, Tika提供了XMLParser类。此类用于从xml文件提取内容和元数据。它位于org.apache.tika.parser.xml包中。

此类包含下表中列出的构造函数和方法。

Tika XMLParser构造函数

Constructor Description
public XMLParser() 它用于创建类的实例。

Tica XMLParser方法

Method Description
公共Set <MediaType> getSupportedTypes(ParseContext上下文) 它返回此解析器支持的媒体类型集。
公共无效解析(InputStream流, ContentHandler处理程序, 元数据元数据, ParseContext上下文)引发IOException, SAXException, TikaException 它将文档流解析为一系列XHTML SAX事件。
受保护的ContentHandler getContentHandler(ContentHandler处理程序, 元数据元数据, ParseContext上下文) 它用于获取内容处理程序。

Tika XML文件提取示例

在此示例中, 我们从xml文件中提取内容和元数据。参见示例。

package tikaexample;

import java.io.InputStream;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.xml.XMLParser;
import org.apache.tika.sax.BodyContentHandler;
public class XmlParserExample {	
	public static void main(String[] args) {
		 BodyContentHandler handler   = new BodyContentHandler();
		 XMLParser parser             = new XMLParser();
		 Metadata metadata            = new Metadata();
		 ParseContext pcontext        = new ParseContext();
		 try (InputStream stream = AutoDetectParseExample.class.getResourceAsStream("web.xml")) {
		        parser.parse(stream, handler, metadata, pcontext);
	     System.out.println("Document Content:" + handler.toString());
	     System.out.println("Document Metadata:");
	     String[] metadatas = metadata.names(); 
	     for(String data : metadatas) {
	         System.out.println(data + ":   " + metadata.get(data));  
	     }
		 }catch(Exception e) {System.out.println("Exception message: "+ e.getMessage());}
	}
}

// web.xml

我们的XML文件。

<?xml version="1.0" encoding="UTF-8"?>
   <servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

输出

Document Content: 
         default
         org.apache.catalina.servlets.DefaultServlet
         
             debug
             0
        
         
             listings
             false
        
         1
    

Document Metadata:
Content-Type:   application/xml
微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?