gpt4 book ai didi

xml - 使用java创建xml时添加命名空间值

转载 作者:行者123 更新时间:2023-12-04 16:56:46 25 4
gpt4 key购买 nike

我必须创建类似于以下内容的 xml:

<xml version="1.0" encoding="UTF-8"?>
<tns:Message>
<tns:Header>
<tns:to>CCM</tns:to>
<tns:from>CPM</tns:from>
<tns:type>New</tns:type>
</tns:Header>
</tns:Message>

从我的java对象。

我正在尝试做这样的事情
                     DocumentBuilderFactory factory 
= DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
DocumentBuilder builder = factory.newDocumentBuilder();
DOMImplementation impl = builder.getDOMImplementation();
Document doc = impl.createDocument(null,"tns:Message", null);

但在最后一行它给了我错误

"NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces."



但是如果我通过“Message”而不是“tns:Message”它工作正常。
由于 tns 是命名空间前缀我需要使用它,我怎样才能使它成为可能。

有什么建议?

最佳答案

http://java.sun.com/j2se/1.4.2/docs/api/org/w3c/dom/DOMImplementation.html#createDocumentType%28java.lang.String,%20java.lang.String,%20java.lang.String%29

查看为 createDocument 提供的第二种方法。

public Document createDocument(String namespaceURI,
String qualifiedName,
DocumentType doctype)
throws DOMException

您需要提供一个 uri 来唯一标识命名空间作为第一个参数

关于xml - 使用java创建xml时添加命名空间值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/920153/

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