最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

怎样用vc++读写xml文件

来源:动视网 责编:小OO 时间:2025-10-02 00:52:51
文档

怎样用vc++读写xml文件

用微软的DOM,MSXML4//引入msxml4.dll#import"C:\\WINNT.0\\system32\\msxml4.dll"//创建XMLDOMDocument指针MSXML2::IXMLDOMDocumentPtrpXMLDoc;//初始化COM接口::CoInitialize(NULL);//通过智能指针创建一个解析器的实例HRESULThr;hr=pXMLDoc.CreateInstance(__uuidof(MSXML2::DOMDocument30));//加载文件p
推荐度:
导读用微软的DOM,MSXML4//引入msxml4.dll#import"C:\\WINNT.0\\system32\\msxml4.dll"//创建XMLDOMDocument指针MSXML2::IXMLDOMDocumentPtrpXMLDoc;//初始化COM接口::CoInitialize(NULL);//通过智能指针创建一个解析器的实例HRESULThr;hr=pXMLDoc.CreateInstance(__uuidof(MSXML2::DOMDocument30));//加载文件p
用微软的 DOM,

MSXML4

//引入msxml4.dll

#import "C:\\WINNT.0\\system32\\msxml4.dll"

//创建XMLDOMDocument指针

MSXML2::IXMLDOMDocumentPtr pXMLDoc;

// 初始化COM接口

::CoInitialize(NULL);

// 通过智能指针创建一个解析器的实例

HRESULT hr;

hr =pXMLDoc.CreateInstance(__uuidof(MSXML2::DOMDocument30));

//加载文件

pXMLDoc->load("f:\\\\he.xml");

//在树中查找名为City的节点,"//"表示在任意一层查找

MSXML2::IXMLDOMElementPtr childNode ;

childNode = (MSXML2::IXMLDOMElementPtr)(pXMLDoc->selectSingleNode("//AUTHOR"));

//得到节点类型

MSXML2::DOMNodeType nodeType;

childNode->get_nodeType(&nodeType);

//节点名称

BSTR var;

CString name;

childNode->get_nodeName(&var);

name = (char*)(_bstr_t)var;

//节点值

VARIANT varVal;

childNode->get_nodeTypedValue(&varVal);

CString strValue = (char*)(_bstr_t)varVal;

读属性:

//节点属性,放在链表中

MSXML2::IXMLDOMNamedNodeMapPtr pAttrs = NULL;

MSXML2::IXMLDOMNodePtr pAttrItem;

childNode = (MSXML2::IXMLDOMElementPtr)(pXMLDoc->selectSingleNode("//NUM"));

childNode->get_attributes(&pAttrs);

long nCount ;

pAttrs->get_length(&nCount);

for(int i = 0 ; i < nCount ; i++)

{

pAttrs->get_item(i,&pAttrItem);

//我们可以通过函数get_nodeName,get_nodeTypedValue得到属性名和属性值

//也可以直接得到

CString strAttrName = (char*)(_bstr_t)pAttrItem->nodeName;

CString strAttrValue = (char*)(_bstr_t)pAttrItem->nodeTypedValue;

}

另外

可以用MSXML DOM

创建一个文档对象的过程。

HRESULT hr;

IXMLDomDocument* pXMLDoc;

IXMLDOMNode* pXDN;

Hr=CoInitialize(NULL); //COM的初始化

hr=CoCreateInstance(CLSID_DOM Document,NULL,CLSCTX_INPPROC_SERVER,

IID_IXMLDOMDocument,(void**) &pXMLDoc);

hr=pXMLDoc->QueryInterface (IID_IXMLDOMNode,(void**)&pXDN);

使用文档中的createElement方法来创建一个节点装载和保存XML文件。通过load或者是loadXML方法可以从一个指定的URL来装载一个XML文档Save方法是用来把文档保存到一个指定的位置,用getElementsByTagName获得制定节点数据 

添加评论

评论读取中...

请登录后再发表评论!

 取消

627657141| 2009-04-30 09:46:17

有0人认为这个回答不错 | 有0人认为这个回答没有帮助

用微软的   dom,  

 msxml4  

 //引入msxml4.dll  

 #import   "c:\\winnt.0\\system32\\msxml4.dll"  

   

 //创建xmldomdocument指针  

 msxml2::ixmldomdocumentptr       pxmldoc;  

   

 //   初始化com接口  

 ::coinitialize(null);  

 //   通过智能指针创建一个解析器的实例  

 hresult   hr;  

 hr   =pxmldoc.createinstance(__uuidof(msxml2::domdocument30));  

 //加载文件  

pxmldoc->load("f:\\\\he.xml");

 //在树中查找名为city的节点,"//"表示在任意一层查找  

 msxml2::ixmldomelementptr     childnode   ;  

childnode = (msxml2::ixmldomelementptr)(pxmldoc->selectsinglenode("//author"));

 //得到节点类型  

 msxml2::domnodetype   nodetype;  

childnode->get_nodetype(&nodetype);

 //节点名称  

 bstr   var;  

 cstring   name;  

childnode->get_nodename(&var);

 name   =   (char*)(_bstr_t)var;  

 //节点值  

 variant   varval;  

childnode->get_nodetypedvalue(&varval);

 cstring   strvalue   =   (char*)(_bstr_t)varval;  

 读属性:  

 //节点属性,放在链表中  

 msxml2::ixmldomnamednodemapptr   pattrs   =   null;    

 msxml2::ixmldomnodeptr   pattritem;  

childnode = (msxml2::ixmldomelementptr)(pxmldoc->selectsinglenode("//num"));

   

childnode->get_attributes(&pattrs);

 long   ncount   ;  

pattrs->get_length(&ncount);

for(int i = 0 ; i < ncount ; i++)

 {                                    

pattrs->get_item(i,&pattritem);

 // 们可以通过函数get_nodename,get_nodetypedvalue得到属性名和属性值  

 //也可以直接得到  

cstring strattrname = (char*)(_bstr_t)pattritem->nodename;

cstring strattrvalue = (char*)(_bstr_t)pattritem->nodetypedvalue;

 }

另外

可以用msxml   dom    

   

 创建一个文档对象的过程。    

 hresult   hr;    

 ixmldomdocument*   pxmldoc;    

 ixmldomnode*   pxdn;    

 hr=coinitialize(null);   //com的初始化    

   

 hr=cocreateinstance(clsid_dom   document,null,clsctx_inpproc_server,    

 iid_ixmldomdocument,(void**)   &pxmldoc);    

hr=pxmldoc->queryinterface (iid_ixmldomnode,(void**)&pxdn);

 使用文档中的createelement方法来创建一个节点装载和保存xml文件。通过load或者是loadxml方法可以从一个指定的url来装载一个xml文档save方法是用来把文档保存到一个指定的位置,用getelementsbytagname获得制定节点数据 

文档

怎样用vc++读写xml文件

用微软的DOM,MSXML4//引入msxml4.dll#import"C:\\WINNT.0\\system32\\msxml4.dll"//创建XMLDOMDocument指针MSXML2::IXMLDOMDocumentPtrpXMLDoc;//初始化COM接口::CoInitialize(NULL);//通过智能指针创建一个解析器的实例HRESULThr;hr=pXMLDoc.CreateInstance(__uuidof(MSXML2::DOMDocument30));//加载文件p
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top