本文概述
为了提取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