\HTMLPurifier_Strategy_FixNesting
Takes a well formed list of tokens and fixes their nesting.
HTML elements dictate which elements are allowed to be their children,
for example, you can't have a p tag in a span tag. Other elements have
much more rigorous definitions: tables, for instance, require a specific
order for their elements. There are also constraints not expressible by
document type definitions, such as the chameleon nature of ins/del
tags and global child exclusions.
The first major objective of this strategy is to iterate through all the
nodes (not tokens) of the list of tokens and determine whether or not
their children conform to the element's definition. If they do not, the
child definition may optionally supply an amended list of elements that
is valid or require that the entire node be deleted (and the previous
node rescanned).
The second objective is to ensure that explicitly excluded elements of
an element do not appear in its children. Code that accomplishes this
task is pervasive through the strategy, though the two are distinct tasks
and could, theoretically, be seperated (although it's not recommended).
Synopsis
- // methods
- public void execute()
- // Inherited methods from HTMLPurifier_Strategy
- public abstract void execute()
Hierarchy
Extends
Tasks
Line | Task |
---|---|
31+ | Enable nodes to be bubbled out of the structure. |