如何利用MSXML做xml处理

首先要包含

#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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值