当前位置:C++技术网 > 资讯 > XML编程:6 C++中使用XML文件:读取并解析XML文件

XML编程:6 C++中使用XML文件:读取并解析XML文件

更新时间:2015-06-24 10:12:06浏览次数:1+次

    下面是实现XML文件读取和获取节点的值的代码示例。从大量繁杂的函数中抽取出来,可以轻松的解决平常的开发。

::CoInitialize(NULL);
MSXML2::IXMLDOMDocumentPtr XMLDOC;// - XML文档对象
HRESULT HR = XMLDOC.CreateInstance(__uuidof(MSXML2::DOMDocument30));// - 创建XML文档实例

XMLDOC->load("f:1.xml");// - 加载xml文件

MSXML2::IXMLDOMNodePtr pNode = XMLDOC->selectSingleNode("//website");// - 按名字获取节点
_variant_t val ;                // - 节点值变量
pNode->get_nodeTypedValue(&val);   // - 获取节点的值,存入变量
std::string str = _bstr_t(val); // - 将节点值转换成C++字符串
pNode.Release();   // - 释放使用的节点对象
XMLDOC.Release();  // - 释放使用的文档对象
::CoUninitialize(); // - 释放COM组件使用环境

    selectSingleNode函数中的"//"表示在任意层次中查找,因为节点是分层结构的,如果不加“//”符号,则只能在最上层查找
    _bstr_t是一种字符串类型的封装好的对象,可以自动转换各种字符串类型。对于_variant_t这种类型,也是一个封装对象,集成了各种类型,算得上是一个集成类型,可以接受任何类型的变量,需要使用时再转换成你需要的类型。
    string是C++标准库的字符串,使用前需要包含头文件#include <string>