C++中处理XML文件

来源:互联网 发布:多线程并发编程问题 编辑:程序博客网 时间:2024/05/16 09:10

  标签: C++
  写Unmanaged Code在.NET时代成为一种很悲惨的事,当你需要处理XML文件时,这种感觉会变得尤其强烈。FCL中的System.XML多简单啊,连Steve Ballmer都知道怎么用。
  事情不会总是那么理想的,如果你要在C/C++程序里处理XML怎么办呢?
  选择一:市面上的XML lib还是有几个的,最有名的当然是libXML。我一年前用过,很不错,我还特意写了一份简明教程,后来不知搁哪儿了。
  选择二:MS的MSXML,我要介绍的就是这个。
  先说一下在MSDN哪里找文档吧,往下看的时候也好有个参考:在Index里打:Windows Media Services 9 Series SDK=>Programming Reference=>Programming Reference (C++)=>XML DOM Interfaces (C++)。什么?Windows Media?呵呵,不错,我觉得这个guide反而是最清楚的,你直接找MSXML,得到的结果,我觉得还没这个好。
  在C程序里调用MSXML基本就是一堆COM接口,不过在Visual Studio里操作先要做点简单的设置:
  在你的Project里Add References=>COM标签=>Microsoft XML v4.0,5.0其实也有了,但因为是和Office一起发布的,觉得有点怪,不想用,反正也未必用什么很怪异的功能,4.0可以了。
  然后在加入这两行:
  #include <msXML2.h>
  #import <msXML4.dll>
  头文件和dll库。什么?在哪里加?头文件或者c/cpp文件啊,哪里合适放哪儿。
  然后就开始编程了,先定义两个必用的变量:
  IXMLDOMDocumentPtr XMLFile = NULL;
  IXMLDOMElement* XMLRoot = NULL;
  为什么是必用的?  汗...
  第一步当然是初始化COM:
  if(FAILED(CoInitialize(NULL))) ....
0 0