Class TagNodeEmptyContentCondition

java.lang.Object
org.htmlcleaner.conditional.TagNodeEmptyContentCondition
All Implemented Interfaces:
ITagNodeCondition

public class TagNodeEmptyContentCondition extends Object implements ITagNodeCondition
Checks if node is an inline 0r block element and has empty contents or white/non-breakable spaces only. Nodes that have non-empty id attribute are considered to be non-empty, since they can be used in javascript scenarios. Examples that should be pruned,
   
 
invalid input: '<'/td
Examples of code that should NOT be pruned:
 

- no content but image tags do not have text content. invalid input: '<'tablehi - the first (empty) td is a placeholder so the second td is in the correct column
  • Field Details

    • ID_ATTRIBUTE_NAME

      private static final String ID_ATTRIBUTE_NAME
      See Also:
    • unsafeBlockElements

      private static final Set<String> unsafeBlockElements
      Removal of element from this set can affect layout too hard.
    • tagInfoProvider

      private ITagInfoProvider tagInfoProvider
  • Constructor Details

    • TagNodeEmptyContentCondition

      public TagNodeEmptyContentCondition(ITagInfoProvider provider)
  • Method Details

    • satisfy

      public boolean satisfy(TagNode tagNode)
      Specified by:
      satisfy in interface ITagNodeCondition
    • satisfy

      private boolean satisfy(TagNode tagNode, boolean override)
    • hasIdAttributeSet

      private boolean hasIdAttributeSet(TagNode tagNode)