org.opencms.util
Class CmsHtmlTagRemoveFactory

java.lang.Object
  extended byorg.htmlparser.PrototypicalNodeFactory
      extended byorg.opencms.util.CmsHtmlTagRemoveFactory
All Implemented Interfaces:
org.htmlparser.NodeFactory, java.io.Serializable

public final class CmsHtmlTagRemoveFactory
extends org.htmlparser.PrototypicalNodeFactory

A tag factory for htmlparser that is able to "remove tags".

Create an instance, add the Tag instances to remove and assign this factory to the Parser before starting a visit. A demo usage is shown in org.opencms.workplace.tools.content.CmsTagReplaceParser.

The tags are not actually removed: They are linked in the document object model tree of the HTML that the parser generates. They just will not accept any NodeVisitor instances and therefore be invisible in any output a visitor will generate from the visited tree.

Since:
6.1.8
Version:
$Revision: 1.3 $
Author:
Achim Westermann
See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.htmlparser.PrototypicalNodeFactory
mBlastocyst, mRemark, mTag, mText
 
Constructor Summary
CmsHtmlTagRemoveFactory()
          Create a new factory with all tags registered.
 
Method Summary
 boolean addTagRemoval(org.htmlparser.Tag tag)
          Add a tag that will be invisible for NodeVisitor instances.
 org.htmlparser.Tag createTagNode(org.htmlparser.lexer.Page arg0, int arg1, int arg2, java.util.Vector arg3)
           
 
Methods inherited from class org.htmlparser.PrototypicalNodeFactory
clear, createRemarkNode, createStringNode, get, getRemarkPrototype, getTagNames, getTagPrototype, getTextPrototype, put, registerTag, registerTags, remove, setRemarkPrototype, setTagPrototype, setTextPrototype, unregisterTag
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CmsHtmlTagRemoveFactory

public CmsHtmlTagRemoveFactory()
Create a new factory with all tags registered.

Method Detail

addTagRemoval

public boolean addTagRemoval(org.htmlparser.Tag tag)
Add a tag that will be invisible for NodeVisitor instances.

Not only "this" tag will be invisible but all parsed Tags that have the same name (case insensitive).

Parameters:
tag - the tag that will be invisible for all NodeVisitor instances.
Returns:
true if the tag was added to the internal set of tags to remove, false if not (was contained before, has no name,...).

createTagNode

public org.htmlparser.Tag createTagNode(org.htmlparser.lexer.Page arg0,
                                        int arg1,
                                        int arg2,
                                        java.util.Vector arg3)
See Also:
PrototypicalNodeFactory.createTagNode(org.htmlparser.lexer.Page, int, int, java.util.Vector)