Как добавить элемент из одного XML-документа в другой XML-документ?
У меня возникли проблемы с добавлением элемента CitationDocumentBatch, который находится в этом объекте objXMLInputDoc. Я хочу добавить его к этому объекту objXMLCopyOfOriginalInputDoc. Он должен быть добавлен как дочерний элемент <soapenv:body> внутри objXMLCopyOfOriginalInputDoc.
объект objXMLInputDoc содержит следующее
<CitationDocumentBatch schemaVersion="3:5" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.courts.state.mn.us/CourtXML/3 file:///H:/Deve/Schemas/CourtXML/CitationDocument_3_5.xsd"> <CitationDocument> <Citation> </CitationDocument> </CitationDocumentBatch>
objXMLCopyOfOriginalInputDoc содержит следующее
<?xml version="1.0" encoding="utf-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"> <soap:Header xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> </soap:Header> <soapenv:Body> <!--Add or insert CitationDocumentBatch element here--> </soapenv:Body> </soapenv:Envelope>
Результат, который я хочу получить, будет в objXMLCopyOfOriginalInputDoc, который после вставки/добавления CitationDocumentBatch из objXMLInputDoc будет выглядеть следующим образом
<?xml version="1.0" encoding="utf-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"> <soap:Header xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> </soap:Header> <soapenv:Body> <CitationDocumentBatch schemaVersion="3:5" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.courts.state.mn.us/CourtXML/3 file:///H:/Deve/Schemas/CourtXML/CitationDocument_3_5.xsd"> <CitationDocument> <Citation> </CitationDocument> </CitationDocumentBatch> </soapenv:Body> </soapenv:Envelope>
Я пытаюсь это сделать vb.net но я получаю исключение "Узел, который будет вставлен, находится в другом контексте документа."
[код]objXMLCopyOfOriginalInputDoc.DocumentElement.SelectSingleNode("soap:Body", objXMLNameSpaceManager).AppendChild(objXMLInputDoc.SelectSingleNode("//CitationDocumentBatch"))
Может ли кто - нибудь помочь мне с этим? Это может быть очень легко, но я не в состоянии понять это.
Что я уже пробовал:
Я устал от этого, но я получаю исключение
objXMLCopyOfOriginalInputDoc.DocumentElement.SelectSingleNode("soap:Body", objXMLNameSpaceManager).AppendChild(objXMLInputDoc.SelectSingleNode("//CitationDocumentBatch"))
Richard MacCutchan
Ссылка на объект "я получаю исключение "не установлена на экземпляр объекта.""
Вам нужно использовать свой отладчик, чтобы выяснить, почему эта ссылочная переменная является нулевой, а не допустимой ссылкой.
Member 11403304
На самом деле исключение составляет "вставляемый узел находится в другом контексте документа"