java - 如何从另一个文档的子集创建一个新文档?

标签 java xml dom

假设我们有一个 org.w3c.dom.Document 表示以下 XML:

<Fruits>
  <Apples>
    <Red/>
    <Green/>
  </Apples>
</Fruits>

如果我们知道文档总是包含<Fruits>如果 root 只有一个 child (在本例中为 <Apples> ,但 child 的名字通常是未知的),我们如何才能使该 child 成为新 org.w3c.dom.Document 的根?换句话说,这个新文档应该表示以下 XML:

<Apples>
  <Red/>
  <Green/>
</Apples>

我的问题是,当我尝试提取子项时,我无法让它忘记其父项(它仍然记得其在原始文档中的位置)。

最佳答案

类似这样的事情:

    Node apples = doc.getFirstChild().getFirstChild(); 
            //or whatever is your way to find the node to copy
    Document newDocument = builder.newDocument();
    Node applesCopy = newDocument.importNode(apples, true);
    newDocument.appendChild(applesCopy);

基本上,您从旧文档中获取一个节点,将其导入到新文档中并将其附加到顶部。

关于java - 如何从另一个文档的子集创建一个新文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3109693/

相关文章:

javascript - 获取选定的文本位置并在其旁边放置一个元素

Javascript – 确定需要删除或添加的元素数量

java - ItemArray.checklist.add() 不将字符串附加到 ArrayList

java 在不知道实现类的情况下调用接口(interface)方法

c# - 在 C# 项目中存储不变变量的好方法是什么?

android - EditText高度根据文字大小变化

javascript - 如何根据用户 HTML 输入创建文档对象?

java - 从文本文件中读取并存储在字符串中

java - 未设置密码时如何连接 JDBC postgres 连接而无需密码

xml - XPath 和 XSLT 的实际应用