【问题标题】:How to construct a new document builder out of an existing builders node?如何从现有构建器节点构建新的文档构建器?
【发布时间】:2011-01-11 23:04:46
【问题描述】:

我有以下代码:

DocumentBuilderFactory dbFactory_ = DocumentBuilderFactory.newInstance();
Document doc_;
DocumentBuilder dBuilder = dbFactory_.newDocumentBuilder();
StringReader reader = new StringReader(s);
InputSource inputSource = new InputSource(reader);
doc_ = dBuilder.parse(inputSource);
doc_.getDocumentElement().normalize();

然后我遍历doc_ 以获取特定节点。然后我想用那个节点创建一个新的 dBuilder。到目前为止,我一直在尝试将我的节点转换为字符串,然后将dBuilder.parse 转换为字符串,但这一直没有奏效,因为我遇到了命名空间问题和其他问题。

<Random>
  <Fixed></Fixed>
</Random>

因此,我将取出 &lt;Fixed&gt; 节点并创建一个全新的类,它是根节点。

【问题讨论】:

  • 为什么不能重用原来的DocumentBuilder
  • 我正在使用新节点创建一个全新的类。
  • 我添加了一个编辑可能我不清楚
  • 我仍然不明白为什么你不能将DocumentBuilder 传递给新类
  • 为什么不创建新的空文档(重用您的文档构建器)并采用/导入您感兴趣的节点?

标签: java xml dom xml-namespaces xmldom


【解决方案1】:

创建一个新文档,然后将你的节点导入其中,如下所示:

Document otherDoc = dBuilder.newDocument();
Node importedNode = otherDoc.importNode(myNode, true);
otherDoc.appendChild(importedNode);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    • 1970-01-01
    • 1970-01-01
    • 2021-01-27
    • 1970-01-01
    • 2015-07-02
    • 1970-01-01
    相关资源
    最近更新 更多