normalizeText method

  1. @protected
List<XmlNode> normalizeText(
  1. List<XmlNode> nodes
)

Implementation

@protected
List<XmlNode> normalizeText(List<XmlNode> nodes) {
  final result = <XmlNode>[];
  for (final node in nodes) {
    if (node is XmlText) {
      final text =
          node.value.trim().replaceAll(_whitespaceOrLineTerminators, ' ');
      if (text.isNotEmpty) {
        if (result.isNotEmpty && result.last is XmlText) {
          result.last =
              XmlText('${result.last.value}${XmlToken.whitespace}$text');
        } else if (node.value != text) {
          result.add(XmlText(text));
        } else {
          result.add(node);
        }
      }
    } else {
      result.add(node);
    }
  }
  return result;
}