加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

MSXML解析XML的一个例子

发布时间:2020-12-16 08:03:12 所属栏目:百科 来源:网络整理
导读:xml例子如下: ?xml version="1.0"?catalog book id="bk001" authorEddy/author titleXML Developer's Guide/title price16.18/price /book book id="bk002" authorRain/author titleMidnight Rain/title price12.95/price /book book id="bk003" authorSunn

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  
		{  
			; 
		}   
	}  	
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读