Package org.jsoup.parser
Class TreeBuilder
- java.lang.Object
-
- org.jsoup.parser.TreeBuilder
-
- Direct Known Subclasses:
HtmlTreeBuilder
,XmlTreeBuilder
abstract class TreeBuilder extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description (package private) java.lang.String
baseUri
(package private) Token
currentToken
(package private) Document
doc
private Token.EndTag
end
(package private) NodeVisitor
nodeListener
protected Parser
parser
(package private) CharacterReader
reader
(package private) java.util.Map<java.lang.String,Tag>
seenTags
(package private) ParseSettings
settings
(package private) java.util.ArrayList<Element>
stack
private Token.StartTag
start
(package private) Tokeniser
tokeniser
(package private) boolean
trackSourceRange
-
Constructor Summary
Constructors Constructor Description TreeBuilder()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description (package private) void
completeParse()
(package private) abstract java.util.List<Node>
completeParseFragment()
(package private) Element
currentElement()
Get the current element (last on the stack).(package private) boolean
currentElementIs(java.lang.String normalName)
Checks if the Current Element's normal name equals the supplied name, in the HTML namespace.(package private) boolean
currentElementIs(java.lang.String normalName, java.lang.String namespace)
Checks if the Current Element's normal name equals the supplied name, in the specified namespace.(package private) java.lang.String
defaultNamespace()
Gets the default namespace for this TreeBuilder(package private) abstract ParseSettings
defaultSettings()
(package private) void
error(java.lang.String msg)
If the parser is tracking errors, add an error at the current position.(package private) void
error(java.lang.String msg, java.lang.Object... args)
If the parser is tracking errors, add an error at the current position.(package private) void
initialiseParse(java.io.Reader input, java.lang.String baseUri, Parser parser)
(package private) void
initialiseParseFragment(Element context)
(package private) boolean
isContentForTagData(java.lang.String normalName)
(An internal method, visible for Element.(package private) abstract TreeBuilder
newInstance()
Create a new copy of this TreeBuilder(package private) void
nodeListener(NodeVisitor nodeListener)
Set the node listener, which will then get callbacks for node insert and removals.(package private) void
onNodeClosed(Node node)
Called by implementing TreeBuilders when a node is explicitly closed.(package private) void
onNodeInserted(Node node)
Called by implementing TreeBuilders when a node has been inserted.(package private) Document
parse(java.io.Reader input, java.lang.String baseUri, Parser parser)
(package private) java.util.List<Node>
parseFragment(java.lang.String inputFragment, Element context, java.lang.String baseUri, Parser parser)
(package private) Element
pop()
Removes the last Element from the stack, hits onNodeClosed, and then returns it.(package private) abstract boolean
process(Token token)
(package private) boolean
processEndTag(java.lang.String name)
(package private) boolean
processStartTag(java.lang.String name)
(package private) boolean
processStartTag(java.lang.String name, Attributes attrs)
(package private) void
push(Element element)
Adds the specified Element to the end of the stack, and hits onNodeInserted.(package private) void
runParser()
(package private) boolean
stepParser()
(package private) Tag
tagFor(java.lang.String tagName, java.lang.String namespace, ParseSettings settings)
(package private) Tag
tagFor(java.lang.String tagName, ParseSettings settings)
private void
trackNodePosition(Node node, boolean isStart)
-
-
-
Field Detail
-
parser
protected Parser parser
-
reader
CharacterReader reader
-
tokeniser
Tokeniser tokeniser
-
doc
Document doc
-
stack
java.util.ArrayList<Element> stack
-
baseUri
java.lang.String baseUri
-
currentToken
Token currentToken
-
settings
ParseSettings settings
-
seenTags
java.util.Map<java.lang.String,Tag> seenTags
-
nodeListener
NodeVisitor nodeListener
-
start
private Token.StartTag start
-
end
private final Token.EndTag end
-
trackSourceRange
boolean trackSourceRange
-
-
Method Detail
-
defaultSettings
abstract ParseSettings defaultSettings()
-
initialiseParse
void initialiseParse(java.io.Reader input, java.lang.String baseUri, Parser parser)
-
completeParse
void completeParse()
-
parseFragment
java.util.List<Node> parseFragment(java.lang.String inputFragment, Element context, java.lang.String baseUri, Parser parser)
-
initialiseParseFragment
void initialiseParseFragment(Element context)
-
completeParseFragment
abstract java.util.List<Node> completeParseFragment()
-
nodeListener
void nodeListener(NodeVisitor nodeListener)
Set the node listener, which will then get callbacks for node insert and removals.
-
newInstance
abstract TreeBuilder newInstance()
Create a new copy of this TreeBuilder- Returns:
- copy, ready for a new parse
-
runParser
void runParser()
-
stepParser
boolean stepParser()
-
process
abstract boolean process(Token token)
-
processStartTag
boolean processStartTag(java.lang.String name)
-
processStartTag
boolean processStartTag(java.lang.String name, Attributes attrs)
-
processEndTag
boolean processEndTag(java.lang.String name)
-
pop
final Element pop()
Removes the last Element from the stack, hits onNodeClosed, and then returns it.- Returns:
-
push
final void push(Element element)
Adds the specified Element to the end of the stack, and hits onNodeInserted.- Parameters:
element
-
-
currentElement
Element currentElement()
Get the current element (last on the stack). If all items have been removed, returns the document instead (which might not actually be on the stack; use stack.size() == 0 to test if required.- Returns:
- the last element on the stack, if any; or the root document
-
currentElementIs
boolean currentElementIs(java.lang.String normalName)
Checks if the Current Element's normal name equals the supplied name, in the HTML namespace.- Parameters:
normalName
- name to check- Returns:
- true if there is a current element on the stack, and its name equals the supplied
-
currentElementIs
boolean currentElementIs(java.lang.String normalName, java.lang.String namespace)
Checks if the Current Element's normal name equals the supplied name, in the specified namespace.- Parameters:
normalName
- name to checknamespace
- the namespace- Returns:
- true if there is a current element on the stack, and its name equals the supplied
-
error
void error(java.lang.String msg)
If the parser is tracking errors, add an error at the current position.- Parameters:
msg
- error message
-
error
void error(java.lang.String msg, java.lang.Object... args)
If the parser is tracking errors, add an error at the current position.- Parameters:
msg
- error message templateargs
- template arguments
-
isContentForTagData
boolean isContentForTagData(java.lang.String normalName)
(An internal method, visible for Element. For HTML parse, signals that script and style text should be treated as Data Nodes).
-
tagFor
Tag tagFor(java.lang.String tagName, java.lang.String namespace, ParseSettings settings)
-
tagFor
Tag tagFor(java.lang.String tagName, ParseSettings settings)
-
defaultNamespace
java.lang.String defaultNamespace()
Gets the default namespace for this TreeBuilder- Returns:
- the default namespace
-
onNodeInserted
void onNodeInserted(Node node)
Called by implementing TreeBuilders when a node has been inserted. This implementation includes optionally tracking the source range of the node. @param node the node that was just inserted
-
onNodeClosed
void onNodeClosed(Node node)
Called by implementing TreeBuilders when a node is explicitly closed. This implementation includes optionally tracking the closing source range of the node. @param node the node being closed
-
trackNodePosition
private void trackNodePosition(Node node, boolean isStart)
-
-