gpt4 book ai didi

java - 使用 marklogic java 客户端 api 处理 DOM

转载 作者:行者123 更新时间:2023-11-30 07:47:10 25 4
gpt4 key购买 nike

我是 MarkLogic java API 的新手,正在尝试创建一个 xml 文档,其中 Document 是使用 DocumentBuilderFactoryDocumentBuilder 构建的,一切都是使用以下代码可以正常工作。

 DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder=factory.newDocumentBuilder();
Document doc=docBuilder.newDocument(); //Works fine

现在因为我有文档引用,所以我可以调用 doc.CreateElement() 来创建一个 xml 结构化文档。

以同样的方式,如果我使用 com.marklogic.client.io.DOMHandle 中的 DOMHandle 引用文档;

 DOMHandle handle=new DOMHandle();
Document doc=handle.get();
doc.createElement(); //NULL POINTER EXCEPTION

现在从 handle 创建的文档引用给出了空指针异常。我知道我正在从返回空文档的 getter 方法获取文档,但我并没有尝试从空文档访问任何内容。而是尝试使用出现空指针异常的 doc.createElement() 创建文档元素。

请解释问题。

最佳答案

DOMHandle 将 XML 内容表示为 DOM 文档。它不是创建 DOM 文档的工厂。句柄只是一个适配器,它包装了我们从数据库中读取或用 Java 创建的文档。除非使用构造函数 DOMHandle(Document content) 或使用方法 public void set(Document content) 显式设置,否则 DOMHandle 的内容将为空,因此 空指针异常。你可能应该做其中之一

DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder=factory.newDocumentBuilder();
Document doc=docBuilder.newDocument();
// Build the Document completely and assign it to the handle and use the handle
DOMHandle handle = new DOMHandle();
handle.set(doc);
// or DOMHandle handle = new DOMHandle(doc);
// or DOMHandle handle = new DOMHandle().with(doc);

关于java - 使用 marklogic java 客户端 api 处理 DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50050889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com