Package org.jsoup.helper
Class W3CDom.W3CBuilder
java.lang.Object
org.jsoup.helper.W3CDom.W3CBuilder
- All Implemented Interfaces:
NodeVisitor
- Enclosing class:
W3CDom
Implements the conversion by walking the input.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Elementprivate Nodeprivate final Documentprivate booleanprivate Document.OutputSettings.Syntaxprivate static final String -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidprivate voidcopyAttributes(Element jEl, Element wEl) voidCallback for when a node is first visited.private voidmaybeAddUndeclaredNs(String namespace, String attrKey, Element jEl, Element wEl) Add a namespace declaration for an attribute with a prefix if it is not already present.private voidsetAttribute(Element jEl, Element wEl, Attribute attribute, Document.OutputSettings.Syntax syntax) voidCallback for when a node is last visited, after all of its descendants have been visited.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.jsoup.select.NodeVisitor
traverse
-
Field Details
-
doc
-
namespaceAware
private boolean namespaceAware -
dest
-
syntax
-
contextElement
-
undefinedNs
- See Also:
-
-
Constructor Details
-
W3CBuilder
-
-
Method Details
-
head
Description copied from interface:NodeVisitorCallback for when a node is first visited.The node may be modified (for example via
Node.attr(String)), removed withNode.remove(), or replaced withNode.replaceWith(Node). If the node is anElement, you may cast it and access those methods.Traversal uses a forward cursor. After
head()completes:- If the current node is still attached, traversal continues into its current children and then its following siblings. Nodes inserted before the current node are not visited.
- If the current node was detached and another node now occupies its former sibling position, the node now at
that position is not passed to
head()again. Traversal continues from there: its children are visited, then the node is passed toNodeVisitor.tail(Node, int), then later siblings are visited. - If the current node was detached and no node occupies its former sibling position, the current node is not
passed to
tail(), and traversal resumes at the node that originally followed it.
Traversal never advances outside the original root subtree. If the traversal root is detached during
head(), traversal stops at the original root boundary.- Specified by:
headin interfaceNodeVisitor- Parameters:
source- the node being visited.depth- the depth of the node, relative to the root node. E.g., the root node has depth 0, and a child node of that will have depth 1.
-
append
-
tail
Description copied from interface:NodeVisitorCallback for when a node is last visited, after all of its descendants have been visited.This method defaults to a no-op.
The node passed to
tail()is the node at the current traversal position when the subtree completes. Ifhead()replaced the original node, this may be the replacement node instead.Structural changes to the current node are not supported during
tail().- Specified by:
tailin interfaceNodeVisitor- Parameters:
source- the node being visited.depth- the depth of the node, relative to the root node. E.g., the root node has depth 0, and a child node of that will have depth 1.
-
copyAttributes
-
setAttribute
private void setAttribute(Element jEl, Element wEl, Attribute attribute, Document.OutputSettings.Syntax syntax) throws DOMException - Throws:
DOMException
-
maybeAddUndeclaredNs
Add a namespace declaration for an attribute with a prefix if it is not already present. Ensures that attributes with prefixes have the corresponding namespace declared, E.g. attribute "v-bind:foo" gets another attribute "xmlns:v-bind='undefined'. So that the asString() transformation pass is valid. If the parser was HTML we don't have a discovered namespace but we are trying to coerce it, so walk up the element stack and find it.
-