Package org.jsoup.parser
Class XmlTreeBuilder
- java.lang.Object
-
- org.jsoup.parser.XmlTreeBuilder
-
public class XmlTreeBuilder extends java.lang.Object
Use theXmlTreeBuilder
when you want to parse XML without any of the HTML DOM rules being applied to the document.Usage example:
Document xmlDoc = Jsoup.parse(html, baseUrl, Parser.xmlParser());
- Author:
- Jonathan Hedley
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.String
baseUri
protected org.jsoup.parser.Token
currentToken
protected Document
doc
protected Parser
parser
protected java.util.Map<java.lang.String,Tag>
seenTags
protected ParseSettings
settings
protected java.util.ArrayList<Element>
stack
-
Constructor Summary
Constructors Constructor Description XmlTreeBuilder()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Element
currentElement()
Get the current element (last on the stack).protected boolean
currentElementIs(java.lang.String normalName)
Checks if the Current Element's normal name equals the supplied name.protected void
error(java.lang.String msg)
If the parser is tracking errors, add an error at the current position.protected void
error(java.lang.String msg, java.lang.Object... args)
If the parser is tracking errors, add an error at the current position.protected void
initialiseParse(java.io.Reader input, java.lang.String baseUri, Parser parser)
protected void
insertNode(Node node)
protected void
insertNode(Node node, org.jsoup.parser.Token token)
protected boolean
isContentForTagData(java.lang.String normalName)
(An internal method, visible for Element.protected void
onNodeClosed(Node node, org.jsoup.parser.Token token)
Called by implementing TreeBuilders when a node is explicitly closed.protected void
onNodeInserted(Node node, org.jsoup.parser.Token token)
Called by implementing TreeBuilders when a node has been inserted.protected void
popStackToClose(org.jsoup.parser.Token.EndTag endTag)
If the stack contains an element with this tag's name, pop up the stack to remove the first occurrence.protected boolean
process(org.jsoup.parser.Token token)
protected boolean
processEndTag(java.lang.String name)
protected boolean
processStartTag(java.lang.String name)
boolean
processStartTag(java.lang.String name, Attributes attrs)
protected void
runParser()
protected Tag
tagFor(java.lang.String tagName, ParseSettings settings)
-
-
-
Field Detail
-
parser
protected Parser parser
-
doc
protected Document doc
-
stack
protected java.util.ArrayList<Element> stack
-
baseUri
protected java.lang.String baseUri
-
currentToken
protected org.jsoup.parser.Token currentToken
-
settings
protected ParseSettings settings
-
seenTags
protected java.util.Map<java.lang.String,Tag> seenTags
-
-
Method Detail
-
initialiseParse
@ParametersAreNonnullByDefault protected void initialiseParse(java.io.Reader input, java.lang.String baseUri, Parser parser)
-
process
protected boolean process(org.jsoup.parser.Token token)
-
insertNode
protected void insertNode(Node node)
-
insertNode
protected void insertNode(Node node, org.jsoup.parser.Token token)
-
popStackToClose
protected void popStackToClose(org.jsoup.parser.Token.EndTag endTag)
If the stack contains an element with this tag's name, pop up the stack to remove the first occurrence. If not found, skips.- Parameters:
endTag
- tag to close
-
runParser
protected void runParser()
-
processStartTag
protected boolean processStartTag(java.lang.String name)
-
processStartTag
public boolean processStartTag(java.lang.String name, Attributes attrs)
-
processEndTag
protected boolean processEndTag(java.lang.String name)
-
currentElement
protected 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
protected boolean currentElementIs(java.lang.String normalName)
Checks if the Current Element's normal name equals the supplied name.- Parameters:
normalName
- name to check- Returns:
- true if there is a current element on the stack, and its name equals the supplied
-
error
protected void error(java.lang.String msg)
If the parser is tracking errors, add an error at the current position.- Parameters:
msg
- error message
-
error
protected 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
protected 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
protected Tag tagFor(java.lang.String tagName, ParseSettings settings)
-
onNodeInserted
protected void onNodeInserted(Node node, @Nullable org.jsoup.parser.Token token)
Called by implementing TreeBuilders when a node has been inserted. This implementation includes optionally tracking the source range of the node.- Parameters:
node
- the node that was just insertedtoken
- the (optional) token that created this node
-
onNodeClosed
protected void onNodeClosed(Node node, org.jsoup.parser.Token token)
Called by implementing TreeBuilders when a node is explicitly closed. This implementation includes optionally tracking the closing source range of the node.- Parameters:
node
- the node being closedtoken
- the end-tag token that closed this node
-
-