⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmldata.cpp

📁 BQYAHOO的Visual C++源代码
💻 CPP
字号:
// XMLDATA.cpp : 定义 DLL 应用程序的入口点。
//

#include "stdafx.h"
#include "XMLDATA.h"

#include <atlbase.h>
#include <atlconv.h>

#import "msxml3.dll"

using namespace MSXML2;
using namespace std;






CXMLDATA XmlData;

const char DataFileName[]="XMLDATA.xml";

CXMLDATA::CXMLDATA()
{ 
	return; 
}



bool CXMLDATA::ReadData(void)//读取数据
{

	MSXML2::IXMLDOMDocumentPtr pXMLDom;
    MSXML2::IXMLDOMNodeListPtr pXMLDOMNodeList;
    MSXML2::IXMLDOMNamedNodeMapPtr pXMLDOMNamedNodeMap; 
    HRESULT hr;


	//

	CoInitialize(NULL);//进入COM

    hr = pXMLDom.CreateInstance(__uuidof(DOMDocument30));
    if (FAILED(hr)) 
    {
       return false;
    }


	if ( pXMLDom->load(DataFileName) != VARIANT_TRUE)
    {
      
       return false;
    }



	pXMLDOMNodeList=pXMLDom->lastChild->childNodes;
	int len=pXMLDOMNodeList->length;
	if(len==0) return false;
	for(int n=0;n<len;n++)
	{
		

		pXMLDOMNamedNodeMap=pXMLDOMNodeList->item[n]->attributes;//得到属性
		
		//属性1
		CW2AEX<100> X1((pXMLDOMNamedNodeMap->item[0]->nodeValue).bstrVal);
		VName.push_back (X1.m_szBuffer );

		//属性2
		CW2AEX<400> X2((pXMLDOMNamedNodeMap->item[1]->nodeValue).bstrVal);
		VLogInCode.push_back (X2.m_szBuffer );

		//属性2
		CW2AEX<100> X3((pXMLDOMNamedNodeMap->item[2]->nodeValue).bstrVal);
		VDownLoadCode.push_back (X3.m_szBuffer );
	}






	pXMLDom.Release();
    pXMLDOMNodeList.Release();
    pXMLDOMNamedNodeMap.Release();
	CoUninitialize();//离开COM

	return true;
}

bool CXMLDATA::WriteData(void)//写入数据
{


	MSXML2::IXMLDOMDocumentPtr pXMLDom;
    HRESULT hr;

    CoInitialize(NULL);
    hr= pXMLDom.CreateInstance(__uuidof(DOMDocument30));
    if (FAILED(hr)) 
    {       
       return false;
    }
	

	

	//开始准备写入的内容
	int len = VName.size ();
	string XMLContent;

	XMLContent.append ("<?xml version=\"1.0\" encoding=\"GB2312\"?>");
	XMLContent.append ("<root>");
	for(int n=0;n<len;n++)
	{
		XMLContent.append ("<item Name=\"");
		XMLContent.append (VName[n]);
		XMLContent.append ("\" LogInCode=\"");
		XMLContent.append (VLogInCode[n]);
		XMLContent.append ("\" DownLoadCode=\"");
		XMLContent.append (VDownLoadCode[n]);
		XMLContent.append ("\" />");
	}

	XMLContent.append ("</root>");


	if(pXMLDom->loadXML(
         XMLContent.c_str ())!=VARIANT_TRUE)
	{		  
		return false;
	}



	hr = pXMLDom->save(DataFileName);//最关键的一句话

	pXMLDom.Release();
    CoUninitialize();
    return 0;

}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -