MSXML DLL: MSXML3.dllMSXML DOM и добавить несколько инструкции обработки
Я пишу XML с помощью DOM MSXML & ожидается, добавить несколько инструкций обработки. ex:
первая обработка инструкция.
xml version="1.0" encoding="ISO-8859-1"?
вторая инструкция обработки
xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?
Я должен писать код, приведенный ниже, используя MSXML DOM. Но он не смог добавить первую команду обработки &.
код запуска
MSXML2::IXMLDOMElementPtr pXMLRootElem;
MSXML2::IXMLDOMNodePtr pTestDOMNodePtr;
//Create an instance of the DOMDocument object:
m_docPtr.CreateInstance(__uuidof(MSXML2::DOMDocument30));
char* xmlfile = (char*)xmlFileFullPath.c_str();
_variant_t varXml(xmlfile); //XML file to load
m_docPtr->async = VARIANT_FALSE;
m_docPtr->validateOnParse = VARIANT_FALSE;
m_docPtr->resolveExternals = VARIANT_FALSE;
//load XML file.
if(m_docPtr->loadXML(_T("<catalog><cd></cd></catalog>")) == VARIANT_FALSE)
{
CCommonFunction::log ("Failed to create the XML file.");
return false;
}
//Get the root element just created
pXMLRootElem = m_docPtr->GetdocumentElement();
//// Add first ProcessingInstruction <?xml version="1.0" encoding="ISO-8859-1"?>
MSXML2::IXMLDOMProcessingInstructionPtr pXMLProcessingNode =
m_docPtr->createProcessingInstruction("xml", " version='1.0' encoding='UTF-8'");
_variant_t vtObject;
vtObject.vt = VT_DISPATCH;
vtObject.pdispVal = pXMLRootElem;
vtObject.pdispVal->AddRef();
m_docPtr->insertBefore(pXMLProcessingNode,vtObject);
//// Add second ProcessingInstruction ?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?>
MSXML2::IXMLDOMProcessingInstructionPtr pXSLTNode =
m_docPtr->createProcessingInstruction("xml-stylesheet", "type='text/xsl' href='cdcatalog.xsl'");
m_docPtr->insertBefore(pXSLTNode,vtObject);
Пожалуйста, помогите понять, почему MSXML не добавляет несколько инструкций обработки?