Package org.apache.tika.sax
Class PhoneExtractingContentHandler
java.lang.Object
org.xml.sax.helpers.DefaultHandler
org.apache.tika.sax.ContentHandlerDecorator
org.apache.tika.sax.PhoneExtractingContentHandler
- All Implemented Interfaces:
ContentHandler,DTDHandler,EntityResolver,ErrorHandler
Class used to extract phone numbers while parsing.
Every time a document is parsed in Tika, the content is split into SAX events.
Those SAX events are handled by a ContentHandler. You can think of these events
as marking a tag in an HTML file. Once you're finished parsing, you can call
handler.toString(), for example, to get the text contents of the file. On the other
hand, any of the metadata of the file will be added to the Metadata object passed
in during the parse() call. So, the Parser class sends metadata to the Metadata
object and content to the ContentHandler.
This class is an example of how to combine a ContentHandler and a Metadata.
As content is passed to the handler, we first check to see if it matches a
textual pattern for a phone number. If the extracted content is a phone number,
we add it to the metadata under the key "phonenumbers". So, if you used this
ContentHandler when you parsed a document, then called
metadata.getValues("phonenumbers"), you would get an array of Strings of phone
numbers found in the document.
Please see the PhoneExtractingContentHandlerTest for an example of how to use
this class.
-
Constructor Summary
ConstructorsConstructorDescriptionPhoneExtractingContentHandler(ContentHandler handler, Metadata metadata) Creates a decorator for the given SAX event handler and Metadata object. -
Method Summary
Modifier and TypeMethodDescriptionvoidcharacters(char[] ch, int start, int length) The characters method is called whenever a Parser wants to pass raw...voidThis method is called whenever the Parser is done parsing the file.Methods inherited from class org.apache.tika.sax.ContentHandlerDecorator
endElement, endPrefixMapping, ignorableWhitespace, processingInstruction, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, toStringMethods inherited from class org.xml.sax.helpers.DefaultHandler
error, fatalError, notationDecl, resolveEntity, unparsedEntityDecl, warningMethods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.xml.sax.ContentHandler
declaration
-
Constructor Details
-
PhoneExtractingContentHandler
Creates a decorator for the given SAX event handler and Metadata object.- Parameters:
handler- SAX event handler to be decorated
-
-
Method Details
-
characters
The characters method is called whenever a Parser wants to pass raw... characters to the ContentHandler. But, sometimes, phone numbers are split accross different calls to characters, depending on the specific Parser used. So, we simply add all characters to a StringBuilder and analyze it once the document is finished.- Specified by:
charactersin interfaceContentHandler- Overrides:
charactersin classContentHandlerDecorator- Throws:
SAXException
-
endDocument
This method is called whenever the Parser is done parsing the file. So, we check the output for any phone numbers.- Specified by:
endDocumentin interfaceContentHandler- Overrides:
endDocumentin classContentHandlerDecorator- Throws:
SAXException
-