簡體   English   中英

使用DOM刪除Java中的空名稱空間

[英]Remove empty namespace in java using DOM

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

我知道這是一個重復的問題,但是我想再次發帖,因為我從所經歷的任何線程中都得到了令人信服的答復。

我的最終目標是添加上面給出的XML作為SOAP消息的主體內容。 您可以查看以下鏈接,了解我的工作方式。 創建SOAP請求與命名空間有關的錯誤當我使用Websphere Application Server 7.0庫時,它工作正常。JRE也存在,但忘記包含在屏幕快照中。

使用Websphere運行時(也存在JRE,忘了包含)

由於我必須將其導出為jar並作為獨立的應用程序運行,因此我必須刪除對“ Websphere Application Server 7.0庫”的依賴。 因為,通過保留此庫,我的jar大小將超過100MB。 所以我想只帶上我需要的圖書館。

'com.ibm.ws.prereq.soap.jar'

沒有Websphere運行時

現在的問題是,生成的SOAP請求的Request標簽以以下格式出現。

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

我能夠為生成的SOAP消息創建一個“ org.w3c.dom.Document”表示形式。 現在,有人可以告訴我如何從Request標記中刪除xmlns =“”。

我發現的最簡單的方法是:

第一:在子節點中將nasmespace設置為與根用戶相同:第二:移除名稱空間

 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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM