public class HtmlTreeBuilder extends TreeBuilder
Modifier and Type | Field and Description |
---|---|
private boolean |
baseUriSetFromDoc |
private Element |
contextElement |
private Token.EndTag |
emptyEnd |
private ArrayList<Element> |
formattingElements |
private FormElement |
formElement |
private boolean |
fosterInserts |
private boolean |
fragmentParsing |
private boolean |
framesetOk |
private Element |
headElement |
static int |
MaxScopeSearchDepth |
private HtmlTreeBuilderState |
originalState |
private List<String> |
pendingTableCharacters |
private String[] |
specificScopeTarget |
private HtmlTreeBuilderState |
state |
(package private) static String[] |
TagSearchButton |
(package private) static String[] |
TagSearchEndTags |
(package private) static String[] |
TagSearchList |
(package private) static String[] |
TagSearchSelectScope |
(package private) static String[] |
TagSearchSpecial |
(package private) static String[] |
TagSearchTableScope |
(package private) static String[] |
TagsSearchInScope |
baseUri, currentToken, doc, errors, reader, settings, stack, tokeniser
Constructor and Description |
---|
HtmlTreeBuilder() |
Modifier and Type | Method and Description |
---|---|
(package private) Element |
aboveOnStack(Element el) |
(package private) void |
clearFormattingElementsToLastMarker() |
private void |
clearStackToContext(String... nodeNames) |
(package private) void |
clearStackToTableBodyContext() |
(package private) void |
clearStackToTableContext() |
(package private) void |
clearStackToTableRowContext() |
(package private) ParseSettings |
defaultSettings() |
(package private) void |
error(HtmlTreeBuilderState state) |
(package private) boolean |
framesetOk() |
(package private) void |
framesetOk(boolean framesetOk) |
(package private) void |
generateImpliedEndTags() |
(package private) void |
generateImpliedEndTags(String excludeTag)
11.2.5.2 Closing elements that have implied end tags
When the steps below require the UA to generate implied end tags, then, while the current node is a dd element, a
dt element, an li element, an option element, an optgroup element, a p element, an rp element, or an rt element,
the UA must pop the current node off the stack of open elements.
|
(package private) Element |
getActiveFormattingElement(String nodeName) |
(package private) String |
getBaseUri() |
(package private) Document |
getDocument() |
(package private) FormElement |
getFormElement() |
(package private) Element |
getFromStack(String elName) |
(package private) Element |
getHeadElement() |
(package private) List<String> |
getPendingTableCharacters() |
(package private) ArrayList<Element> |
getStack() |
(package private) boolean |
inButtonScope(String targetName) |
protected void |
initialiseParse(Reader input,
String baseUri,
ParseErrorList errors,
ParseSettings settings) |
(package private) boolean |
inListItemScope(String targetName) |
(package private) boolean |
inScope(String targetName) |
(package private) boolean |
inScope(String[] targetNames) |
(package private) boolean |
inScope(String targetName,
String[] extras) |
(package private) boolean |
inSelectScope(String targetName) |
(package private) void |
insert(Element el) |
(package private) void |
insert(Token.Character characterToken) |
(package private) void |
insert(Token.Comment commentToken) |
(package private) Element |
insert(Token.StartTag startTag) |
(package private) Element |
insertEmpty(Token.StartTag startTag) |
(package private) FormElement |
insertForm(Token.StartTag startTag,
boolean onStack) |
(package private) void |
insertInFosterParent(Node in) |
(package private) void |
insertMarkerToFormattingElements() |
private void |
insertNode(Node node) |
(package private) void |
insertOnStackAfter(Element after,
Element in) |
(package private) Element |
insertStartTag(String startTagName) |
private boolean |
inSpecificScope(String[] targetNames,
String[] baseTypes,
String[] extraTypes) |
private boolean |
inSpecificScope(String targetName,
String[] baseTypes,
String[] extraTypes) |
(package private) boolean |
inTableScope(String targetName) |
private boolean |
isElementInQueue(ArrayList<Element> queue,
Element element) |
(package private) boolean |
isFosterInserts() |
(package private) boolean |
isFragmentParsing() |
(package private) boolean |
isInActiveFormattingElements(Element el) |
private boolean |
isSameFormattingElement(Element a,
Element b) |
(package private) boolean |
isSpecial(Element el) |
(package private) Element |
lastFormattingElement() |
(package private) void |
markInsertionMode() |
(package private) void |
maybeSetBaseUri(Element base) |
(package private) void |
newPendingTableCharacters() |
(package private) boolean |
onStack(Element el) |
(package private) HtmlTreeBuilderState |
originalState() |
(package private) List<Node> |
parseFragment(String inputFragment,
Element context,
String baseUri,
ParseErrorList errors,
ParseSettings settings) |
(package private) Element |
pop() |
(package private) void |
popStackToBefore(String elName) |
(package private) void |
popStackToClose(String... elNames) |
(package private) void |
popStackToClose(String elName) |
protected boolean |
process(Token token) |
(package private) boolean |
process(Token token,
HtmlTreeBuilderState state) |
(package private) void |
push(Element element) |
(package private) void |
pushActiveFormattingElements(Element in) |
(package private) void |
reconstructFormattingElements() |
(package private) void |
removeFromActiveFormattingElements(Element el) |
(package private) boolean |
removeFromStack(Element el) |
(package private) Element |
removeLastFormattingElement() |
(package private) void |
replaceActiveFormattingElement(Element out,
Element in) |
private void |
replaceInQueue(ArrayList<Element> queue,
Element out,
Element in) |
(package private) void |
replaceOnStack(Element out,
Element in) |
(package private) void |
resetInsertionMode() |
(package private) void |
setFormElement(FormElement formElement) |
(package private) void |
setFosterInserts(boolean fosterInserts) |
(package private) void |
setHeadElement(Element headElement) |
(package private) void |
setPendingTableCharacters(List<String> pendingTableCharacters) |
(package private) HtmlTreeBuilderState |
state() |
String |
toString() |
(package private) void |
transition(HtmlTreeBuilderState state) |
currentElement, parse, processEndTag, processStartTag, processStartTag, runParser
static final String[] TagsSearchInScope
static final String[] TagSearchList
static final String[] TagSearchButton
static final String[] TagSearchTableScope
static final String[] TagSearchSelectScope
static final String[] TagSearchEndTags
static final String[] TagSearchSpecial
public static final int MaxScopeSearchDepth
private HtmlTreeBuilderState state
private HtmlTreeBuilderState originalState
private boolean baseUriSetFromDoc
private Element headElement
private FormElement formElement
private Element contextElement
private ArrayList<Element> formattingElements
private List<String> pendingTableCharacters
private Token.EndTag emptyEnd
private boolean framesetOk
private boolean fosterInserts
private boolean fragmentParsing
private String[] specificScopeTarget
HtmlTreeBuilder()
ParseSettings defaultSettings()
defaultSettings
in class TreeBuilder
protected void initialiseParse(Reader input, String baseUri, ParseErrorList errors, ParseSettings settings)
initialiseParse
in class TreeBuilder
List<Node> parseFragment(String inputFragment, Element context, String baseUri, ParseErrorList errors, ParseSettings settings)
protected boolean process(Token token)
process
in class TreeBuilder
boolean process(Token token, HtmlTreeBuilderState state)
void transition(HtmlTreeBuilderState state)
HtmlTreeBuilderState state()
void markInsertionMode()
HtmlTreeBuilderState originalState()
void framesetOk(boolean framesetOk)
boolean framesetOk()
Document getDocument()
String getBaseUri()
void maybeSetBaseUri(Element base)
boolean isFragmentParsing()
void error(HtmlTreeBuilderState state)
Element insert(Token.StartTag startTag)
Element insertStartTag(String startTagName)
Element insertEmpty(Token.StartTag startTag)
FormElement insertForm(Token.StartTag startTag, boolean onStack)
void insert(Token.Comment commentToken)
void insert(Token.Character characterToken)
private void insertNode(Node node)
private boolean isElementInQueue(ArrayList<Element> queue, Element element)
Element getFromStack(String elName)
boolean removeFromStack(Element el)
void popStackToClose(String elName)
void popStackToClose(String... elNames)
void popStackToBefore(String elName)
void clearStackToTableContext()
void clearStackToTableBodyContext()
void clearStackToTableRowContext()
private void clearStackToContext(String... nodeNames)
Element aboveOnStack(Element el)
void insertOnStackAfter(Element after, Element in)
void replaceOnStack(Element out, Element in)
private void replaceInQueue(ArrayList<Element> queue, Element out, Element in)
void resetInsertionMode()
private boolean inSpecificScope(String targetName, String[] baseTypes, String[] extraTypes)
private boolean inSpecificScope(String[] targetNames, String[] baseTypes, String[] extraTypes)
boolean inListItemScope(String targetName)
boolean inButtonScope(String targetName)
boolean inTableScope(String targetName)
boolean inSelectScope(String targetName)
void setHeadElement(Element headElement)
Element getHeadElement()
boolean isFosterInserts()
void setFosterInserts(boolean fosterInserts)
FormElement getFormElement()
void setFormElement(FormElement formElement)
void newPendingTableCharacters()
List<String> getPendingTableCharacters()
void setPendingTableCharacters(List<String> pendingTableCharacters)
void generateImpliedEndTags(String excludeTag)
excludeTag
- If a step requires the UA to generate implied end tags but lists an element to exclude from the
process, then the UA must perform the above steps as if that element was not in the above list.void generateImpliedEndTags()
Element lastFormattingElement()
Element removeLastFormattingElement()
void pushActiveFormattingElements(Element in)
private boolean isSameFormattingElement(Element a, Element b)
void reconstructFormattingElements()
void clearFormattingElementsToLastMarker()
void removeFromActiveFormattingElements(Element el)
boolean isInActiveFormattingElements(Element el)
Element getActiveFormattingElement(String nodeName)
void replaceActiveFormattingElement(Element out, Element in)
void insertMarkerToFormattingElements()
void insertInFosterParent(Node in)
WebARTS Library Licensed Under the GNU - General Public License. Other Libraries licensed under their respective Open Source Licenses