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

在Java中为Range对象设置开始和结束文本节点可以吗?,java,xml,dom,cursor,Java,Xml,Dom,Cursor,我需要确定光标是否在XML范围内。 我已经为范围设置了开始和结束文本节点。 我认为compareBoundaryPoints方法在这种情况下不能正常工作。当然,我可能错了。 在Java中,我使用com.arbortext.epic.ADocument,org.w3c.dom.ranges.Range导入。 holeRange\uu是一个org.w3c.dom.ranges.Range对象 holeRange_ = ((DocumentRange) txtProcessor_.GetDocumen

我需要确定光标是否在XML范围内。 我已经为范围设置了开始和结束文本节点。 我认为compareBoundaryPoints方法在这种情况下不能正常工作。当然,我可能错了。 在Java中,我使用
com.arbortext.epic.ADocument
org.w3c.dom.ranges.Range
导入。
holeRange\uu
是一个
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。 问题是否与此相关: 累了,兄弟! 我已经做了一个三个方法的小端口(代码> > CopyBurnAcple Posits < /Cuff>,<代码> <代码>的<代码>,<代码>索引> <代码> >从XeCCES C++ XML库到java。我忘记了Xerces2 Java。

嗯,我做了一组实验,结果表明xerces
compareBoundaryPoints
实现更为充分。

…顺便问一下,有什么代码要显示吗?什么是射程物体?@JimmyGustafsson-嗯,公平地说,伊利亚有4到5个没有回答的Q's@Adel-的确如此。我不知道。我认为他仍然可以从阅读tho提供的链接中获益。@伊利亚——在目前的状态下,这个问题很难回答。请尝试发布您尝试过的相关代码,以及为什么它不起作用,更多的人将能够帮助您解决您的问题。这个问题与问题完全无关。比较基本点,这是框架的一部分还是您创建的方法?您使用什么框架来遍历dom?你在说什么范围,多姆的孩子们?还是整个文件?可能您有这么多未回答的问题是因为您的提问不正确。我想compareBoundaryPoints缺陷在新版本中已经消除了。注意:
compareBoundaryPoints
在处理非规范化xml时效果很差。这是因为逻辑使用
getNextSibling()
方法,该方法在文本节点的情况下返回null。