Обратите внимание: SOAPHeader расширяет интерфейсы узлов и элементов:
Document docToAppend= getDoc();
final SOAPHeader soapHeader = getSoapHeader();
final Node importNode = soapHeader.getOwnerDocument().importNode(docToAppend.cloneNode(true), true);
soapHeader.appendChild(importNode);
т.е. я хочу добавить docToAppend
в узел soapHeader
.
Но это сбой исключается:
Вызывается: org.w3c.dom.DOMException: NOT_SUPPORTED_ERR: реализация не поддерживает запрашиваемый тип объекта или операции.
Я думаю, что мой код неверен.
Имел ту же ошибку NOT_SUPPORTED_ERR.
DOMResult dom = new DOMResult();
getTransformer().transform(new StAXSource(xmlr), dom);
Node node = dom.getNode();
document.appendChild(document.importNode(node, true)); // <---- Error
Обнаружено, что попытка добавить документ вместо элемента, проверяя тип узла.
System.out.println("Node type is [" + dom.getNode().getNodeType() + "]");
----
Node type is [9] <---- DOCUMENT_NODE
Получить первый дочерний узел документа.
node = dom.getNode().getFirstChild();
System.out.println("Node type is [" + node.getNodeType() + "]");
document.appendChild(document.importNode(node, true));
----
Node type is 1 <---- ELEMENT_NODE
Значения DOCUMENT_NODE и ELEMENT_NODE указаны в значениях полей констант JAVA API.
Объект SOAPHeader может иметь только объекты SOAPHeaderElement в качестве своих непосредственных детей.