Добавление XML-документа внутрь другого в Dynamics AX

У меня есть функция, которая создает и возвращает XML-документ. Затем я хочу вставить весь этот документ в другой XML-документ. Проблема, с которой я столкнулся, заключается в том, что информация заголовка XML автоматически добавляется в документ XML, а затем я получаю сообщение об ошибке при попытке вставить это. Мой код выглядит следующим образом:

xmlElem = xmlDoc.createElement("MyNode");

tmpXmlStr = this.MyXmlBuildFunc();
xmlElem.innerXml(tmpXmlStr);

// Now try to add this to the main document
xmlParentNode.appendChild(xmlElem);

Моя функция выглядит примерно так:

str MyXmlBuildFunc()
{
    XmlDocument xmlOut;
    XmlNode curNod;
    XmlElement xmlElem;
    XmlElement xmlParentElem;
    ;

    xmlOut = XmlDocument::newBlank();

    xmlParentElem = xmlOut.createElement("MainNode");

    xmlElem = xmlOut.createElement("NodeName");
    xmlElem.innerText("NodeValue");
    xmlParentElem.appendChild(xmlElem);

    xmlOut.appendChild(xmlParentElem);

    return xmlOut.xml();
}

Ошибка, которую я получаю, выглядит следующим образом:

Unexpected XML declaration. The XML declaration must be the first node in the document, and no white space characters are allowed to appear before it

Прослеживая это, я полагаю, что это вызвано определением XML, созданным XmlDocument, построенным в функции. Как я могу остановить это, проигнорировать это или обойти эту ошибку каким-либо другим способом?


person Paul Michaels    schedule 11.05.2011    source источник


Ответы (1)


Попробуйте использовать return xmlParentElem.xml(); вместо return xmlOut.xml();.

person 10p    schedule 12.05.2011