是否可以在 Java 中为 Range 对象设置开始和结束文本节点



我需要确定游标是否在XML范围内。我已经为 Range 设置了开始和结束文本节点。我想比较边界点方法在这种情况下无法正常工作。当然,我可能是错的。在Java中,我使用com.arbortext.epic.ADocumentorg.w3c.dom.ranges.Range导入。 holeRange_是一个org.w3c.dom.ranges.Range对象。

holeRange_ = ((DocumentRange) txtProcessor_.GetDocument()).createRange();
holeRange_.setStart(startNode, 0); //text node
holeRange_.setEndAfter(endNode); //text node

下面是单击事件处理程序的正文:

Range caretRange = ((ADocument) txtProcessor_.GetDocument()).getInsertionPoint();
    if (caretRange != null) {
     DebugMode.println(caretRange.getStartContainer().getNodeValue());
     DebugMode.println("END_TO_START = " +
      textNodeRange_.compareBoundaryPoints(Range.END_TO_START, caretRange));
     DebugMode.println("START_TO_END = " + 
      holeRange_.compareBoundaryPoints(Range.START_TO_END, caretRange));
    }

当光标在范围内时,输出给出 END_TO_START = -1 和 START_TO_END = -1。根据检查指定的元素是否在选择范围内,值应为:END_TO_START = -1 和 START_TO_END = 1。问题是否与之相关:https://bugs.eclipse.org/bugs/show_bug.cgi?id=148126

累了

兄弟!我已经为范围对象(从xerces c++ XML库到Java)制作了一个三重方法(compareBoundaryPointsisAncestorOfindexOf)的小端口。我已经忘记了Xerces2 Java。
好吧,我做了一组实验,表明xerces compareBoundaryPoints实现更充分。

最新更新