public static XMLBuilder withDocument(final Document source) { return new XMLBuilder(source); }
public XMLBuilder appendBefore(String xpath, XMLElement element) { Node target = find(xpath); target.getParentNode().insertBefore(element.toW3C(), target); return this; }
public XMLElement element(final String qname, Attr... attributes) { return element(PrefixedName.toQName(qname, namespaces, preserveNSPrefix), attributes); }
public XMLElement element(QName qname, Attr... attributes) { Element elem = sourceDocument.createElementNS(qname.getNamespaceURI(), toQualifyedName(qname)); return new XMLElement(elem).attributes(attributes); }
public XMLBuilder appendTo(String xpath, XMLElement element) { find(xpath).appendChild(element.toW3C()); return this; }
public XMLBuilder appendAfter(String xpath, XMLElement element) { Node target = find(xpath); Node before = target.getNextSibling(); if (before != null) { target.getParentNode().insertBefore(element.toW3C(), before); } else { target.getParentNode().appendChild(element.toW3C()); } return this; }
public static XMLBuilder withNewDocument() { return new XMLBuilder(DOMParser.createEmptyDocument()); }
public XMLBuilder replaceNodeAt(String xpath, XMLElement element) { Node target = find(xpath); target.getParentNode().replaceChild(element.toW3C(), target); return this; }