【问题标题】:adding namespace value while creating an xml with java在使用 java 创建 xml 时添加命名空间值
【发布时间】:2009-05-28 10:15:31
【问题描述】:

我必须创建类似的 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:试图以某种方式创建或更改对象 这对于命名空间是不正确的。”

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

有什么建议吗?

【问题讨论】:

    标签: xml namespaces


    【解决方案1】:

    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来唯一标识命名空间作为第一个参数

    【讨论】:

      猜你喜欢
      • 2015-04-14
      • 2010-10-06
      • 2016-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-05
      • 2012-06-23
      • 2017-06-11
      相关资源
      最近更新 更多