public class HtmlTreeBuilder extends TreeBuilder
Modifier and Type | Field and Description |
---|---|
private boolean |
baseUriSetFromDoc |
private Element |
contextElement |
private Token.EndTag |
emptyEnd |
private java.util.ArrayList<Element> |
formattingElements |
private FormElement |
formElement |
private boolean |
fosterInserts |
private boolean |
fragmentParsing |
private boolean |
framesetOk |
private Element |
headElement |
private HtmlTreeBuilderState |
originalState |
private java.util.List<java.lang.String> |
pendingTableCharacters |
private java.lang.String[] |
specificScopeTarget |
private HtmlTreeBuilderState |
state |
private static java.lang.String[] |
TagSearchButton |
private static java.lang.String[] |
TagSearchEndTags |
private static java.lang.String[] |
TagSearchList |
private static java.lang.String[] |
TagSearchSelectScope |
private static java.lang.String[] |
TagSearchSpecial |
private static java.lang.String[] |
TagSearchTableScope |
static java.lang.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(java.lang.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(java.lang.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(java.lang.String nodeName) |
(package private) java.lang.String |
getBaseUri() |
(package private) Document |
getDocument() |
(package private) FormElement |
getFormElement() |
(package private) Element |
getFromStack(java.lang.String elName) |
(package private) Element |
getHeadElement() |
(package private) java.util.List<java.lang.String> |
getPendingTableCharacters() |
(package private) java.util.ArrayList<Element> |
getStack() |
(package private) boolean |
inButtonScope(java.lang.String targetName) |
(package private) boolean |
inListItemScope(java.lang.String targetName) |
(package private) boolean |
inScope(java.lang.String targetName) |
(package private) boolean |
inScope(java.lang.String[] targetNames) |
(package private) boolean |
inScope(java.lang.String targetName,
java.lang.String[] extras) |
(package private) boolean |
inSelectScope(java.lang.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(java.lang.String startTagName) |
private boolean |
inSpecificScope(java.lang.String[] targetNames,
java.lang.String[] baseTypes,
java.lang.String[] extraTypes) |
private boolean |
inSpecificScope(java.lang.String targetName,
java.lang.String[] baseTypes,
java.lang.String[] extraTypes) |
(package private) boolean |
inTableScope(java.lang.String targetName) |
private boolean |
isElementInQueue(java.util.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) Document |
parse(java.lang.String input,
java.lang.String baseUri,
ParseErrorList errors,
ParseSettings settings) |
(package private) java.util.List<Node> |
parseFragment(java.lang.String inputFragment,
Element context,
java.lang.String baseUri,
ParseErrorList errors,
ParseSettings settings) |
(package private) Element |
pop() |
(package private) void |
popStackToBefore(java.lang.String elName) |
(package private) void |
popStackToClose(java.lang.String... elNames) |
(package private) void |
popStackToClose(java.lang.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(java.util.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(java.util.List<java.lang.String> pendingTableCharacters) |
(package private) HtmlTreeBuilderState |
state() |
java.lang.String |
toString() |
(package private) void |
transition(HtmlTreeBuilderState state) |
currentElement, initialiseParse, processEndTag, processStartTag, processStartTag, runParser
public static final java.lang.String[] TagsSearchInScope
private static final java.lang.String[] TagSearchList
private static final java.lang.String[] TagSearchButton
private static final java.lang.String[] TagSearchTableScope
private static final java.lang.String[] TagSearchSelectScope
private static final java.lang.String[] TagSearchEndTags
private static final java.lang.String[] TagSearchSpecial
private HtmlTreeBuilderState state
private HtmlTreeBuilderState originalState
private boolean baseUriSetFromDoc
private Element headElement
private FormElement formElement
private Element contextElement
private java.util.ArrayList<Element> formattingElements
private java.util.List<java.lang.String> pendingTableCharacters
private Token.EndTag emptyEnd
private boolean framesetOk
private boolean fosterInserts
private boolean fragmentParsing
private java.lang.String[] specificScopeTarget
ParseSettings defaultSettings()
defaultSettings
in class TreeBuilder
Document parse(java.lang.String input, java.lang.String baseUri, ParseErrorList errors, ParseSettings settings)
parse
in class TreeBuilder
java.util.List<Node> parseFragment(java.lang.String inputFragment, Element context, java.lang.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()
java.lang.String getBaseUri()
void maybeSetBaseUri(Element base)
boolean isFragmentParsing()
void error(HtmlTreeBuilderState state)
Element insert(Token.StartTag startTag)
Element insertStartTag(java.lang.String startTagName)
void insert(Element el)
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)
Element pop()
void push(Element element)
java.util.ArrayList<Element> getStack()
boolean onStack(Element el)
private boolean isElementInQueue(java.util.ArrayList<Element> queue, Element element)
Element getFromStack(java.lang.String elName)
boolean removeFromStack(Element el)
void popStackToClose(java.lang.String elName)
void popStackToClose(java.lang.String... elNames)
void popStackToBefore(java.lang.String elName)
void clearStackToTableContext()
void clearStackToTableBodyContext()
void clearStackToTableRowContext()
private void clearStackToContext(java.lang.String... nodeNames)
private void replaceInQueue(java.util.ArrayList<Element> queue, Element out, Element in)
void resetInsertionMode()
private boolean inSpecificScope(java.lang.String targetName, java.lang.String[] baseTypes, java.lang.String[] extraTypes)
private boolean inSpecificScope(java.lang.String[] targetNames, java.lang.String[] baseTypes, java.lang.String[] extraTypes)
boolean inScope(java.lang.String[] targetNames)
boolean inScope(java.lang.String targetName)
boolean inScope(java.lang.String targetName, java.lang.String[] extras)
boolean inListItemScope(java.lang.String targetName)
boolean inButtonScope(java.lang.String targetName)
boolean inTableScope(java.lang.String targetName)
boolean inSelectScope(java.lang.String targetName)
void setHeadElement(Element headElement)
Element getHeadElement()
boolean isFosterInserts()
void setFosterInserts(boolean fosterInserts)
FormElement getFormElement()
void setFormElement(FormElement formElement)
void newPendingTableCharacters()
java.util.List<java.lang.String> getPendingTableCharacters()
void setPendingTableCharacters(java.util.List<java.lang.String> pendingTableCharacters)
void generateImpliedEndTags(java.lang.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()
boolean isSpecial(Element el)
Element lastFormattingElement()
Element removeLastFormattingElement()
void pushActiveFormattingElements(Element in)
void reconstructFormattingElements()
void clearFormattingElementsToLastMarker()
void removeFromActiveFormattingElements(Element el)
boolean isInActiveFormattingElements(Element el)
Element getActiveFormattingElement(java.lang.String nodeName)
void insertMarkerToFormattingElements()
void insertInFosterParent(Node in)
public java.lang.String toString()
toString
in class java.lang.Object