用MSXML解析XML

2005/6/16 14:14:53


阅读全文(7973) | 回复(2) | 编辑 | 精华

用MSXML解析XML 引自:http://blog.csdn.net/feiyuo3000/archive/2005/05/26/381067.aspx做大作业的时候想把一些东西写到xml中,读取的时候比较方便.由于本程序在VC6中运行,所以有xml有很多高级功能无法使用,但基本操作还是可以的,这个方法是用MSXML解析文件,速度并不快,在我的机器(CE1.1+256)已经能感觉到有些延迟,如果真的读取几千行的话,恐怕连运行都会出现问题,采取.net平台会好些,可以用writexml的方法访问,毕竟是人家提出的标准么,反正VC6别想用那个该死的类库了.呵呵.网上有第三方插件可以提高访问xml的访问效率,有机会做一下研究.下面的方法比较老,但可以实现基本功能. 1)写一个XML文件user.xml<root>        <user id="101">                <name>abc</name>                <password>abc</password>        </user>        <user id="102">                <name>ccc</name>                <password>ccc</password>        </user></root>2)需要引入几个头文件: #include "msxml.h" #include "atlbase.h" #import "msxml.dll"如果需要最新版的话,可以引入msxml2#import "msxml3.dll"using namespace msxml2;引用namespace后可以不用加前缀3)随便建一个对话框加入下面代码:        try{      //读取xml代码需要放在try块,因为建立com可能会产生exception                CoInitialize(NULL);//初始化com组件,                MSXML::IXMLDOMDocumentPtr pDoc;                HRESULT hr =  pDoc.CreateInstance(__uuidof(MSXML::DOMDocument));//创建一个com进程                if(!SUCCEEDED(hr))                 {                         AfxMessageBox("failure");                  }                 pDoc->load("user.xml");                MSXML::IXMLDOMNodeListPtr pNodeList = NULL;                pNodeList = pDoc->selectNodes("root/user");                MSXML::IXMLDOMNodePtr pSubNode;                 CString strTemp;                for(int i=0;i<pNodeList->Getlength();i++)                {                        pSubNode=pNodeList->nextNode()->selectSingleNode("name");                        _bstr_t strRequestType=pSubNode->Gettext();                        strTemp=strRequestType.operator char *();                        AfxMessageBox(strTemp);                }        }catch(...)        {                   AfxMessageBox(_T("Exception occurred"));        }4)其他请操作请参考MSDN msxml索引项.

Qr

Posted by Qr on 2005/6/16 14:14:53

回复:用MSXML解析XML

2006/6/1 17:11:52


个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除

xmlstub.h(17) : error C2871: 'msxml2' : does not exist or is not a namespacewhy?

Ame(游客)

Posted by Ame(游客) on 2006/6/1 17:11:52

回复:用MSXML解析XML

2006/6/1 17:11:43

c:\documents and settings\chogo\my documents\xmltest\xmlstub.h(17) : error C2871: 'msxml2' : does not exist or is not a namespacewhy?

Ame(游客)

Posted by Ame(游客) on 2006/6/1 17:11:43

» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)
站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.027 second(s), page refreshed 144757150 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号