java - 从文档创建但未附加的元素 : need to remove it explicitly?

标签 java xml dom jaxp

我需要创建一个独立于我的主文档的临时 DOM 元素。我通过使用主文档创建一个元素但不将其附加到树中来完成此操作。

Element temporaryParentElement = document.createElement(PERMISSIONSET);

它用于在对话框中构建表格。对话框关闭后,我不再需要此元素,因此我尝试将其删除:

document.removeChild(temporaryParentElement);

这导致了异常:

org.w3c.dom.DOMException: NOT_FOUND_ERR: An attempt is made to reference a node in a context where it does not exist.

如果我理解正确的话,如果创建的节点不是树的一部分,则无法删除它。我需要将其附加到树中然后调用删除方法吗?或者垃圾收集器是否关心这个元素?

最佳答案

元素创建与将其附加或删除到现有树不同。您使用该 document 引用来创建元素,然后将其附加到其他某个元素。您可以使用该元素的引用将其删除。

方法removeChild从树中删除之前添加的元素(使用appendChild或在读取文档时解析)。

您必须找到代表该元素父级的元素才能将其删除。假设父级是 dialog。您将使用:

dialog.removeChild(temporaryParentElement);

关于java - 从文档创建但未附加的元素 : need to remove it explicitly?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24017498/

相关文章:

java - 连接被拒绝 : api testing using rest assured

Java Connect 4 算法检查是否获胜

java - 从 SharedPreference 添加 Cookie 到 Android 应用程序中的 Cookie 管理器

xml - 在 Oracle 中解析 SOAP XML

JavaScript 对象属性为 "sometimes"未定义

javascript - 如何测试两个 HTML 元素或 jQuery 选择器之间的等价性?

java - 如何使用 TimeZone 设置日历?

Python 正则表达式太贪心,错过了 XML 中的第一次出现

r - 将数据从 xml 转换为 R 数据框

javascript - 选择两个 id 之间的每个元素