code: private void handleTextNode(Node node, Map<String, Object> elementMap) {
          Object text = "";
          int nodeType = node.getNodeType();
          switch (nodeType) {
              case Node.TEXT_NODE:
                  text = normalizeText(node.getNodeValue());
                  break;
              case Node.CDATA_SECTION_NODE:
                  text = normalizeText(((CharacterData) node).getData());
                  break;
              default:
                  break;
          }
  
          // If the text is valid ...
          if (!StringUtils.isEmpty(text.toString())) {
              // We check if we have already collected some text previously
              Object previousText = elementMap.get("_text");
              if (previousText != null) {
                  // If we just have a "_text" key than we need to collect to a List
                  text = Arrays.asList(previousText.toString(), text);
              }
              elementMap.put("_text", text);
          }
      }
docs: Handle TEXT nodes and CDATA nodes
  
  @param node
  @param elementMap