Как заменить innerXML текстом в C ++, используя MSXML2 - PullRequest
0 голосов
/ 02 мая 2019

Сейчас я работаю над уже созданным приложением, есть функция, которая выглядит следующим образом

void postOutgoing(IXMLDOMDocument2Ptr &document)
{   
//getting XML from base document
MSXML2::IXMLDOMElementPtr element = document->GetdocumentElement();
//_bstr_t elementBaseName = element->GetbaseName();




string test=element->Getxml();
int start=(test.find("LoadBridgeXml"))+13+1;
int end=test.find("LoadBridgeXml",start);
string test2=test.substr(start,(end-start-2));

replaceAll(test2,">",">");
replaceAll(test2,"<","&lt;");
}

во время отладки при выполнении (string test = element-> Getxml ();) я получил этот xml, переданный в строковую переменную test

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soap:Body>
       <LoadBridgeXml>
           <xmlRequest>
               <Header/>
                    <XmlBridge>
                             <extension fieldNo="1505" value="0021"/>
                             <extension fieldNo="20104" value=""/>
                         </XmlBridge>
            </xmlRequest>
       </LoadBridgeXml>
   </soap:Body>
</soap:Envelope>

Я хочу заменить внутренний XML тега «LoadBridgeXml» и сделать XML похожим на это

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soap:Body>
       <LoadBridgeXml>
           &lt;xmlRequest&gt;
               &lt;Header/&gt;
                    &lt;XmlBridge&gt;
                             &lt;extension fieldNo="1505" value="0021"/&gt;
                             &lt;extension fieldNo="20104" value=""/&gt;
                         &lt;/XmlBridge&gt;
            &lt;/xmlRequest&gt;
       </LoadBridgeXml>
   </soap:Body>
</soap:Envelope>

можно ли заменить только знаки <> или каким-либо другим способом заменить внутренний XML-код LoadBridgeXml на строку

...