code: public void split() {
          if (!needsSplitting()) {
              return;
          }
  
          Node parent = getParentNode();
          String[] parts = getData().split("\\]\\]>");
          parent.insertBefore(new CDATASectionImpl(document, parts[0] + "]]"), this);
          for (int p = 1; p < parts.length - 1; p++) {
              parent.insertBefore(new CDATASectionImpl(document, ">" + parts[p] + "]]"), this);
          }
          setData(">" + parts[parts.length - 1]);
      }
docs: Splits this CDATA node into parts that do not contain a "]]>" sequence.
  Any newly created nodes will be inserted before this node.