猿问

获取 org.w3c.dom.DOMException:

我正在尝试创建一个简单的 XML 文档,并且在将根元素添加到文档时收到上述错误。我只有一个根元素(为文档创建的第一个元素),并且在第一个 append_child() 调用时引发错误。以下是引发错误的代码(在 securityDoc.appendChild(securityDoc) 调用中):


 public Document CreateSecurityHeader() throws ParserConfigurationException {

    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

    factory.setNamespaceAware(true);

    DocumentBuilder builder = factory.newDocumentBuilder();

    Document securityDoc = builder.newDocument();


    try {

        Element securityRoot = securityDoc.createElementNS("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", "wsse:Security");            

        securityRoot.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:wsse", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");

        securityRoot.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:wsu", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd");

        securityRoot.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:env", "http://www.w3.org/2003/05/soap-envelope");

        securityRoot.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:wss","http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd");

        securityRoot.setAttribute("env:mustUnderstand", "1");            

        securityDoc.appendChild(securityDoc);

由于这是该文档中目前唯一的元素,我如何得到这个错误?我确实必须将 xalan 和 xerces 库作为该项目的依赖项作为其他东西的依赖项,这里可能存在不兼容吗?


慕容3067478
浏览 119回答 1
1回答

墨色风雨

哎呀。你追加securityDoc到securityDoc.securityDoc.appendChild(securityDoc);我确定你的意思是:securityDoc.appendChild(securityRoot);我只是通过验证代码自己注意到这一点,当它使用节点查找表来检查建议的树结构是否合法时,我看到你附加的DOCUMENT_NODE内容是,附加到 a 是不合法的DOCUMENT_NODE。
随时随地看视频慕课网APP

相关分类

Java
我要回答