org.xwiki.xml
Class ExtractHandler

java.lang.Object
  extended by org.xml.sax.helpers.DefaultHandler
      extended by org.xwiki.xml.ExtractHandler
All Implemented Interfaces:
ContentHandler, DTDHandler, EntityResolver, ErrorHandler

public class ExtractHandler
extends org.xml.sax.helpers.DefaultHandler

Extracts a well-formed XML fragment by listening to SAX events. The result has the following semantic:
xmlInput.dropAllTags().substring(start, length).unDropAssociatedTags()

So basically we would create an instance like new ExtractHandler(0, 400) in order to obtain an XML fragment with its inner text length of at most 400 characters, starting at position (character) 0 in the source (input) XML's inner text. The ExtractHandler is used in feed plug-in to obtain a preview of an XML (HTML, to be more specific). Another use case could be to paginate an XML source (keeping pages well-formed).

As an example, the result of applying an ExtractHandler(3, 13) to:
<p>click <a href="realyLongURL" title="Here">here</a> to view the result</p>
is:
<p>ck <a href="realyLongURL" title="Here">here</a> to</p>

Since:
1.6M2
Version:
$Id$

Constructor Summary
ExtractHandler(int start, int length)
          Creates a new instance.
 
Method Summary
 void characters(char[] ch, int start, int length)
           
 void endDocument()
           
 void endElement(String namespaceURI, String localName, String qName)
           
 String getResult()
           
 boolean isFinished()
           
 void startDocument()
           
 void startElement(String namespaceURI, String localName, String qName, Attributes atts)
           
 
Methods inherited from class org.xml.sax.helpers.DefaultHandler
endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startPrefixMapping, unparsedEntityDecl, warning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExtractHandler

public ExtractHandler(int start,
                      int length)
               throws SAXException
Creates a new instance.

Parameters:
start - The character index from where to start the extraction.
length - The number of plain text characters to extract.
Throws:
SAXException - if start is less than zero or length is less than or equal to zero.
Method Detail

getResult

public String getResult()
Returns:
The extracted text.

isFinished

public boolean isFinished()
Returns:
true if the extraction process has succeeded; false if an exception occurred during the process.

startDocument

public void startDocument()
                   throws SAXException
Specified by:
startDocument in interface ContentHandler
Overrides:
startDocument in class org.xml.sax.helpers.DefaultHandler
Throws:
SAXException

startElement

public void startElement(String namespaceURI,
                         String localName,
                         String qName,
                         Attributes atts)
                  throws SAXException
Specified by:
startElement in interface ContentHandler
Overrides:
startElement in class org.xml.sax.helpers.DefaultHandler
Throws:
SAXException

characters

public void characters(char[] ch,
                       int start,
                       int length)
                throws SAXException
Specified by:
characters in interface ContentHandler
Overrides:
characters in class org.xml.sax.helpers.DefaultHandler
Throws:
SAXException

endElement

public void endElement(String namespaceURI,
                       String localName,
                       String qName)
                throws SAXException
Specified by:
endElement in interface ContentHandler
Overrides:
endElement in class org.xml.sax.helpers.DefaultHandler
Throws:
SAXException

endDocument

public void endDocument()
                 throws SAXException
Specified by:
endDocument in interface ContentHandler
Overrides:
endDocument in class org.xml.sax.helpers.DefaultHandler
Throws:
SAXException


Copyright © 2004-2011 XWiki. All Rights Reserved.