使用DOM删除java中的空命名空间

时间:2014-08-27 13:04:52

标签: java xml web-services dom

<Request>
  <EMPId>?</EMPId>
</Request>

我知道这是一个重复的问题,但我想再次发布,因为我从我经历过的任何主题中获得了令人信服的答案。

我的最终目标是将上面给出的XML添加为SOAP消息的Body内容。 您可以查看以下链接,了解我的工作方式。 Namespace related error on creating SOAP Request 当我使用Websphere Application Server 7.0库时,它工作正常.JRE也存在,忘记包含在屏幕截图中。

With Websphere runtime (JRE is also present, forgot to include)

由于我必须将其导出为jar并将其作为独立应用程序运行,因此我必须删除Websphere Application Server 7.0库的依赖关系。因为,通过保留这个库,我的jar大小将超过100MB。所以我想只拿走我需要的图书馆。

  

&#39; com.ibm.ws.prereq.soap.jar&#39;

With out Websphere runtime

现在的问题是,生成的SOAP请求的Request标记是以下列格式出现的。

<Request xmlns="">
  <EMPId>?</EMPId>
</Request>

我能够创建一个&#39; org.w3c.dom.Document&#39;生成的SOAP消息的表示。 现在,任何人都可以告诉我如何删除xmlns =&#34;&#34;来自Request标签。

1 个答案:

答案 0 :(得分:0)

我发现的最简单的方法是:

第一: 在孩子中将nasmespace设置为root: 第二: 删除名称空间

 Document doc = new Document();
        Namespace xmlns = Namespace.getNamespace("http://www.microsoft.com/networking/WLAN/profile/v1");
        Element rootXML = new Element("WLANProfile", xmlns);


        Element nameXML = new Element("name");
            nameXML.addContent(name);
        rootXML.addContent(nameXML);
//below solution
            nameXML.setNamespace(xmlns);
            nameXML.removeNamespaceDeclaration(xmlns);