首先要包含
#include <msxml.h>
#import "msxml6.dll" //引入类型库
然后封装几个常用的操作。
例
MSXML2::IXMLDOMElementPtr AddTextElm( MSXML2::IXMLDOMDocumentPtr &doc, MSXML2::IXMLDOMElementPtr &elm, LPCTSTR name, LPCTSTR value )
{
MSXML2::IXMLDOMElementPtr SubElm = doc->createElement((_bstr_t)name);
SubElm->appendChild(doc->createTextNode((_bstr_t)value));
elm->appendChild(SubElm);
return SubElm;
}
MSXML2::IXMLDOMElementPtr FirstChildElement( MSXML2::IXMLDOMElementPtr &elm, LPCTSTR localName )
{
if (NULL == elm)
{
return NULL;
}
for (MSXML2::IXMLDOMNodePtr pNode = elm->firstChild;
pNode != NULL;
pNode = pNode->GetnextSibling())
{
tstring tsLocalName = (LPCTSTR)pNode->GetnodeName();
tsLocalName = tsLocalName.substr(tsLocalName.find(_T(":")) + 1);
if (tsLocalName == localName)
{
return pNode;
}
}
return NULL;
}
用法范例
MSXML2::IXMLDOMElementPtr SubElm = pDoc->createElement((_bstr_t)_T("dlna:X_DLNADOC"));
SubElm->setAttribute((_bstr_t)_T("xmlns:dlna"), (_bstr_t)_T("urn:schemas-dlna-org:device-1-0"));
SubElm->appendChild(pDoc->createTextNode((_bstr_t)_T("DMS-1.50")));
deviceElm->appendChild(SubElm);
以上实在win7 64系统
xp好像要把#import "msxml6.dll"换成#import "msxml.dll"
MSXML2换成MSXML