我的来电者正在向我发送org.w3c.dom.Node
和org.w3c.dom.Document
作为其owner document。换句话说,提供的Node
保证在提供的Document
中成为父级,并代表Node
中应该执行某些工作的Document
。< / p>
我现在处于需要有效克隆Document
的位置(我需要执行修改,并且无法修改源。)
显然,如果我这样做,我手中的Node
并非由克隆产生的新Document
所拥有。我现在已经有效地丢失了克隆Document
中的选择。
但是,我知道克隆文档中会有Node
与我手中的Node
完全相同。我需要找到它。
实现这一目标的最佳方法是什么,除了翻阅整个Document
并在每个人上调用isEqualNode(Node)
之外?
我想也许会有某种方式说document.find(myUnparentedNode)
,但不存在这样的方法。
答案 0 :(得分:1)
您可以生成一个XPath,用于描述旧文档中节点的位置,然后将其应用于新文档。有关如何执行此操作的方法,请参阅this SO question。
如果您可以在克隆之前修改节点,只需为其提供一个不会与其他任何内容发生冲突的唯一属性(例如随机生成),然后您就可以在克隆文档中找到它。
如果它已经有id,请使用它。