我需要确定游标是否在XML范围内。
我为Range设置了开始和结束文本节点。
我想compareBoundaryPoints方法对于这种情况不能正常工作。当然,我可能是错的。
在Java中,我使用com.arbortext.epic.ADocument
,org.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
答案 0 :(得分:1)
compareBoundaryPoints
,isAncestorOf
,indexOf
)的小端口。我忘记了Xerces2 Java
好吧,我做了一组实验,证明xerces compareBoundaryPoints
实现更充分。