MSXML解析XML的一个例子

xml例子如下:

<?xml version="1.0"?>
<catalog>
  <book id="bk001">
    <author>Eddy</author>
    <title>XML Developer's Guide</title>
    <price>16.18</price>
  </book>
  <book id="bk002">
    <author>Rain</author>
    <title>Midnight Rain</title>
    <price>12.95</price>
  </book>
  <book id="bk003">
    <author>Sunny</author>
    <title>Maeve Ascendant</title>
    <price>60</price>
  </book>
</catalog>

工程首先加入msxml.tlh和msxml.tli。

然后:

#include "msxml.tlh"

新建了一个MFC简单对话框工程,代码如下:

void CtestXMLDlg::OnBnClickedOk()
{
	//首先初始化COM   
	HRESULT hr;  
	hr = CoInitialize(NULL);   
	if( hr != S_OK )  
	{  
		return;  
	}  
	//创建Document对象   
	MSXML::IXMLDOMDocumentPtr pDoc;  
	hr = pDoc.CreateInstance(__uuidof(MSXML::DOMDocument)); 
	if( FAILED(hr) )  
	{  
		return;  
	}  
	if( FALSE == pDoc->load(_bstr_t("D:\\Book.xml")) )  
	{
		return; 
	}		 	
	//选择内容的根节点   
	MSXML::IXMLDOMElementPtr pElem = NULL;  
	pElem = pDoc->selectSingleNode("catalog");  
	if(pElem==NULL)  
	{
		return;
	}
	unsigned int nBookNum = pElem->childNodes->length;  
	if( nBookNum == 0)  
	{
		return;
	}

	for(int i=0; i < nBookNum; i++)  
	{  
		MSXML::IXMLDOMNodePtr pBookNode = pElem->childNodes->item[i];  
		if(pBookNode==NULL)  
		{
			return;
		}
		//读取book节点的id属性   
		MSXML::IXMLDOMNodePtr pId = pBookNode->attributes->getNamedItem("id");
		//读取book节点下author子节点   
		MSXML::IXMLDOMNodePtr pAuthorNode = pBookNode->selectSingleNode("author");  
		if(pAuthorNode==NULL)  
		{  
			;
		}  
		else  
		{  
			; 
		}   
	}  	
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇