+ },
+
+ _getXMLDOMToDump: function() {
+ var DOM = this._$.clone(true, true);
+
+ DOM.find('*').addBack().each(function() {
+ var el = $(this),
+ parent = el.parent(),
+ contents = parent.contents(),
+ idx = contents.index(el),
+ data = el.data();
+
+
+ var txt;
+
+ if(data[formatter_prefix+ 'orig_before']) {
+ txt = idx > 0 && contents[idx-1].nodeType === Node.TEXT_NODE ? contents[idx-1] : null;
+ if(txt && txt.data === data[formatter_prefix + 'orig_before_transformed']) {
+ txt.data = data[formatter_prefix+ 'orig_before_original'];
+ } else {
+ el.before(data[formatter_prefix+ 'orig_before']);
+ }
+ }
+ if(data[formatter_prefix+ 'orig_after']) {
+ txt = idx < contents.length-1 && contents[idx+1].nodeType === Node.TEXT_NODE ? contents[idx+1] : null;
+ if(txt && txt.data === data[formatter_prefix + 'orig_after_transformed']) {
+ txt.data = data[formatter_prefix+ 'orig_after_original'];
+ } else {
+ el.after(data[formatter_prefix+ 'orig_after']);
+ }
+ }
+ if(data[formatter_prefix+ 'orig_begin']) {
+ el.prepend(data[formatter_prefix+ 'orig_begin']);
+ }
+ if(data[formatter_prefix+ 'orig_end']) {
+ contents = el.contents();
+ txt = (contents.length && contents[contents.length-1].nodeType === Node.TEXT_NODE) ? contents[contents.length-1] : null;
+ if(txt && txt.data === data[formatter_prefix + 'orig_end_transformed']) {
+ txt.data = data[formatter_prefix+ 'orig_end_original'];
+ } else {
+ el.append(data[formatter_prefix+ 'orig_end']);
+ }
+ }
+ });
+
+ return DOM;