Как окружить содержимое org.w3c.dom, когда начало и конец не имеют общего предка (как это сделано в javascript Rangy) - PullRequest
0 голосов
/ 06 февраля 2019

С ранжирующей библиотекой javascript, мы можем окружить текст следующим образом, даже если начальная и конечная позиции не имеют общего предка:

var range = rangy.createRangyRange();
range.setStart(firstNode, offsetFirstNode);
range.setEnd(lastNode, offsetSecondNode);
var rangyOptions = { useExistingElements: false };
var applier = rangy.createClassApplier('span', rangyOptions);
applier.applyToRange(range);

Как это сделать вJava org.w3c.dom (не Javascript)?Я пытаюсь сделать это следующим образом, но не получается, если начальная и конечная позиции не имеют общего предка.В этом коде мы создаем только один элемент span, но нам нужно создать более одного (и Rangy делает это):

import org.w3c.dom.ranges.*
Range range = doc.asInstanceOf[DocumentRange].createRange()
range.setStart(firstNode, offsetFirstNode);
range.setEnd(lastNode, offsetSecondNode);
Element span = doc.createElement("span")
range.surroundContents(span)

// Fails with Exception in thread "main" org.apache.xerces.dom.RangeExceptionImpl: BAD_BOUNDARYPOINTS_ERR: The boundary-points of a Range do not meet specific requirements.
...