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

时间:2012-04-19 14:01:43

标签: java xml dom cursor

我需要确定游标是否在XML范围内。 我为Range设置了开始和结束文本节点。 我想compareBoundaryPoints方法对于这种情况不能正常工作。当然,我可能是错的。 在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

这是click事件处理程序的主体:

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。 根据{{​​3}},值应为:END_TO_START = -1和START_TO_END = 1。 问题是否与之相关: Check if specified element is inside selection

1 个答案:

答案 0 :(得分:1)

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