nextParsed property

  1. @override
Node? get nextParsed

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;
}