public static DocumentFragment getContentAsFragment(Element element) { Node node = element.getFirstChild(); if (node == null) { return null; // no content } Range range = ((DocumentRange) element.getOwnerDocument()).createRange(); range.setStartBefore(node); range.setEndAfter(element.getLastChild()); return range.cloneContents(); }
@Override protected Object getValue(Context ctx, Element base) { Element el = (Element) DOMHelper.getElementNode(base, path); if (el == null) { return null; } el.normalize(); Node node = el.getFirstChild(); if (node == null) { boolean asDOM = accessor.getType() == DocumentFragment.class; return asDOM ? null : ""; } Range range = ((DocumentRange) el.getOwnerDocument()).createRange(); range.setStartBefore(node); range.setEndAfter(el.getLastChild()); DocumentFragment fragment = range.cloneContents(); boolean asDOM = accessor.getType() == DocumentFragment.class; if (asDOM) { return fragment; } else { try { return DOMSerializer.toString(fragment, DEFAULT_FORMAT); } catch (IOException e) { throw new IllegalArgumentException(e); } } }