nextParsed property
Similar to nextElement but it returns a Node
of what was parsed
immediately after the current element. It might be doc comment, element,
part of string, etc...
To get the String (data) representation of this Node
, use
node.data
.
Implementation
@override
Node? get nextParsed {
final element = this.element;
if (element == null) return null;
// find within children
if (element.hasChildNodes()) {
return element.nodes.first;
}
final parentNode = element.parentNode;
if (parentNode == null) return null;
// find within next siblings
final nextIndex = _getCurrNodeIndex(parentNode, element) + 1;
final allSiblings = parentNode.nodes;
if (nextIndex < allSiblings.length) {
return allSiblings[nextIndex];
}
// find within parent and next siblings
Node prevNode = parentNode;
Node? parent = parentNode.parentNode;
while (parent != null) {
final nextIndex = _getCurrNodeIndex(parent, prevNode) + 1;
final allSiblings = parent.nodes;
if (nextIndex < allSiblings.length) {
return allSiblings[nextIndex];
}
prevNode = parent;
parent = parent.parentNode;
}
return null;
}