Я просто подумал о глупом решении.Я мог бы обернуть фрагмент в фиктивный элемент следующим образом:
<dummy><a>
<b/>
</a>
<a>
<b/>
</a></dummy>
И затем снова программно отфильтровать этот фиктивный элемент, например:
String wrapped = "<dummy>" + text + "</dummy>";
Document parsed = builder.parse(new InputSource(new StringReader(wrapped)));
DocumentFragment fragment = parsed.createDocumentFragment();
// Here, the document element is the <dummy/> element.
NodeList children = parsed.getDocumentElement().getChildNodes();
// Move dummy's children over to the document fragment
while (children.getLength() > 0) {
fragment.appendChild(children.item(0));
}
Но это немного неубедительнопосмотрите, есть ли другое решение.