欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

No such namespace prefix: soap12 is in scope on: org.dom4j.tree.DefaultElement

程序员文章站 2022-04-13 22:46:04
...
org.dom4j.IllegalAddException: No such namespace prefix: 

这个异常是说:要添加的这个元素的前缀,没有声明!这主要是在添加元素时直接用上级元素的allElement方法时出现的。例:

Element ns1 = rootTarget.addElement("soap12:Body");      

                     

有两种解决方式:

第一种:新建一个Element,加上前缀声名后再添加到父元素上去。

Element soap12= org.log4j.documentHelper.createElement("soap12:Body");
soap12.add(new Namespace("soap12","http://www.w3.org/2001/XMLSchema"));
rootTarget.add(soap12);   



 第二种:直接在根上声名:然后就可以用addElement方法去添加结点了。
 

Element root = DocumentHelper.createElement("soap12:Envelope").addAttribute("xmlns:soap12","http://www.w3.org/2003/05/soap-envelope").addAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance").addAttribute("xmlns:xsd", "http://www.w3.org/2001/XMLSchema");  
root.addNamespace("soap12", "http://www.w3.org/2001/XMLSchema");
Document document = DocumentHelper.createDocument(root);  
Element body = root.addElement("soap12:Body");