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

📄 xmlparse.cpp

📁 该程序是mobile5.0 ppc2003系统下的
💻 CPP
📖 第 1 页 / 共 5 页
字号:
		if(!csf.Open(_T("\\My Documents\\test.txt"),CFile::modeRead | CFile::typeBinary | CFile::shareDenyWrite))
		{
		AfxMessageBox(L"读文件错误!\n文件正在使用中,请先关闭程序!",MB_ICONSTOP);			
		}
		else
		{
		while((lensxml=csf.Read(tmps,2048))>0)
		{
			for(int rr=0;rr<lensxml;rr++)
			{
			strdata4[xmlsize+rr]=tmps[rr];

			}
			xmlsize+=lensxml;
		}
		csf.Close();
		}
		
		char *tmp=new char[200];
		strcpy(tmp,"<?xml version=\"1.0\" encoding=\"UTF-16\"?>");
		//char *strdata1= new char[4096];
		//WideCharToMultiByte(CP_ACP, 0, xmlStr, -1, strdata1, xmlStr.GetLength()*2, NULL, NULL);
		for(int i=0;i < (int)strlen(tmp);i++)
		{
			strdata4[i]=tmp[i];
		}
		//AfxMessageBox(xmlStr);
		if( m_iXMLDoc->loadXML(CComBSTR(strdata4),&bSuccess) == S_OK)
		{
		//AfxMessageBox(_T("load xml success"));
			CString temp;
		
			if(m_iXMLDoc->get_documentElement(&m_iRootElm) == S_OK)
			{
				//AfxMessageBox(_T("get_documentElement success"));
				CXmlElement eroot(m_iRootElm);
				//CXmlElement emessage = eroot.subnode(L"pda-message");
				CXmlElement eflagMsg = eroot.subnode(L"resMessage");
				CString loginflags=eflagMsg.val();
				CXmlElement eCols=eroot.subnode(L"message");
				temp=_T("\r\n状态:");
				CString strs=loginflags;
				strs+=temp;
				strs+=eCols.val();

				strcpy(strdata4,"");
				m_iRootElm.Release();
				//m_iXMLDoc.Release();
				return strs;
					
			}
			
			}	
	
	}		

	return L"";
}

CString CXmlParse::parseXmlwmkdj(CString xmlStr)
{
	if(!xmlStr.IsEmpty())
	{
		
		VARIANT_BOOL bSuccess=false;
		int xmlsize=0;
		int lensxml=0;
		char *strdata4= new char[40960];
		char *tmps=new char[2048];
		strcpy(strdata4,"");

		CStdioFile csf;
		if(!csf.Open(_T("\\My Documents\\test.txt"),CFile::modeRead | CFile::typeBinary | CFile::shareDenyWrite))
		{
		AfxMessageBox(L"读文件错误!\n文件正在使用中,请先关闭程序!",MB_ICONSTOP);			
		}
		else
		{
		while((lensxml=csf.Read(tmps,2048))>0)
		{
			for(int rr=0;rr<lensxml;rr++)
			{
			strdata4[xmlsize+rr]=tmps[rr];

			}
			xmlsize+=lensxml;
		}
		csf.Close();
		}
		
		char *tmp=new char[200];
		strcpy(tmp,"<?xml version=\"1.0\" encoding=\"UTF-16\"?>");
		//char *strdata1= new char[4096];
		//WideCharToMultiByte(CP_ACP, 0, xmlStr, -1, strdata1, xmlStr.GetLength()*2, NULL, NULL);
		for(int i=0;i < (int)strlen(tmp);i++)
		{
			strdata4[i]=tmp[i];
		}
		//AfxMessageBox(xmlStr);
		if( m_iXMLDoc->loadXML(CComBSTR(strdata4),&bSuccess) == S_OK)
		{
		//AfxMessageBox(_T("load xml success"));
			CString temp;
		
			if(m_iXMLDoc->get_documentElement(&m_iRootElm) == S_OK)
			{
				//AfxMessageBox(_T("get_documentElement success"));
				CXmlElement eroot(m_iRootElm);
				//CXmlElement emessage = eroot.subnode(L"pda-message");
				CXmlElement eflagMsg = eroot.subnode(L"resultMsg");
				CString loginflags=eflagMsg.val();
				CXmlElement eCols=eroot.subnode(L"message");
				temp=_T("\r\n状态:");
				CString strs=loginflags;
				strs+=temp;
				strs+=eCols.val();

				strcpy(strdata4,"");
				m_iRootElm.Release();
				//m_iXMLDoc.Release();
				return strs;
					
			}
			
			}	
	
	}		

	return L"";
}

void CXmlParse::ParseUserInfo(CString xmlStr,CStringArray &arr)
{//解析登录信息,成功得到登录者的姓名、机构、单位
	if(!xmlStr.IsEmpty())
	{
		VARIANT_BOOL bSuccess=false;
		char *tmp=new char[200];
		strcpy(tmp,"<?xml version=\"1.0\" encoding=\"UTF-16\"?>");
		for(int i=0;i < (int)strlen(tmp);i++)
			xmlStr.SetAt(i,tmp[i]);
		
		if( m_iXMLDoc->loadXML(CComBSTR(xmlStr),&bSuccess) == S_OK)
		{
			if(m_iXMLDoc->get_documentElement(&m_iRootElm) == S_OK)
			{
				CXmlElement eroot(m_iRootElm);
				CXmlElement eflagMsg = eroot.subnode(L"resultMsg");
				if(eflagMsg.val() == _T("1")){
					arr.Add(eroot.subnode(L"userid").val());
					arr.Add(eroot.subnode(L"superorgan").val());
					arr.Add(eroot.subnode(L"organ").val());
					arr.Add(eroot.subnode(L"pdacode").val());
				}
				else arr.Add(eroot.subnode(L"message").val());
			}
		}	m_iRootElm.Release();
	}		
}

CString CXmlParse::parseXmla(CString xmlStr,int *flag)
{
	if(!xmlStr.IsEmpty())
	{
		
		VARIANT_BOOL bSuccess=false;
		CString xmlcontents;
		int xmlsize=0;
		int lensxml=0;
		char *strdata2= new char[40960];
		char *tmps=new char[2048];
		strcpy(strdata2,"");

		CStdioFile csf;
		if(!csf.Open(_T("\\My Documents\\test.txt"),CFile::modeRead | CFile::typeBinary | CFile::shareDenyWrite))
		{
		AfxMessageBox(L"读文件错误!\n文件正在使用中,请先关闭程序!",MB_ICONSTOP);			
		}
		else
		{
		while((lensxml=csf.Read(tmps,2048))>0)
		{
			for(int rr=0;rr<lensxml;rr++)
			{
			strdata2[xmlsize+rr]=tmps[rr];

			}
			xmlsize+=lensxml;
		}
		csf.Close();
		}
		char *tmp=new char[200];
		strcpy(tmp,"<?xml version=\"1.0\" encoding=\"UTF-16\"?>");
		//char *strdata2= new char[4096];
		//WideCharToMultiByte(CP_ACP, 0, xmlStr, -1, strdata2, xmlStr.GetLength()*2, NULL, NULL);
		for(int i=0;i < (int)strlen(tmp);i++)
		{
			strdata2[i]=tmp[i];
		}
		
		//AfxMessageBox(CComBSTR(strdata));
		if( m_iXMLDoc->loadXML(CComBSTR(strdata2),&bSuccess) == S_OK)
		//if( m_iXMLDoc->loadXML(_T("<?xml version=\"1.0\" encoding=\"UTF-16\"?><pda-message><resultMsg>1</resultMsg> <name>徐万鑫</name> <message>登录成功</message></pda-message>"),&bSuccess) == S_OK)
		{
		//AfxMessageBox(_T("load xml success"));
		//	CString getdata;
			CString temp;

			
			if(m_iXMLDoc->get_documentElement(&m_iRootElm) == S_OK)
			{
				//AfxMessageBox(_T("get_documentElement success"));
				CXmlElement eroot(m_iRootElm);
				//CXmlElement emessage = eroot.subnode(L"pda-message");
				CXmlElement eflagMsg = eroot.subnode(L"resultMsg");
				CString loginflags=eflagMsg.val();
				CString strs=loginflags;
				CXmlElement eCols=eroot.subnode(L"message");
				temp=_T("\r状态:");
				strs+=temp;
				strs+=eCols.val();
				strcpy(strdata2,"");
				m_iRootElm.Release();
				return strs;
					
			}
			
		}	
	
	}		

	return L"";
}
CString CXmlParse::parseXmlwmkcx(CString xmlStr, const CString tag)
{
	if(!xmlStr.IsEmpty() && !tag.IsEmpty())
	{
		
		VARIANT_BOOL bSuccess=false;	

		    int xmlsize=0;
			int lensxml=0;
			char *strdata3= new char[409600];
			char *tmps=new char[2048];
			strcpy(strdata3,"");
			
			CStdioFile csf;
		  if(!csf.Open(_T("\\My Documents\\test.txt"),CFile::modeRead | CFile::typeBinary | CFile::shareDenyWrite))
			{
				AfxMessageBox(L"读文件错误!\n文件正在使用中,请先关闭程序!",MB_ICONSTOP);			
			}
			else
			{
				while((lensxml=csf.Read(tmps,2048))>0)
				{
					for(int rr=0;rr<lensxml;rr++)
					{
					strdata3[xmlsize+rr]=tmps[rr];

					}
					xmlsize+=lensxml;
				}
				csf.Close();
			}
			
			
			//AfxMessageBox(xmlcontents);
				
		char *tmp=new char[200];
		strcpy(tmp,"<?xml version=\"1.0\" encoding=\"UTF-16\"?>");
		
	//	WideCharToMultiByte(CP_ACP, 0, xmlStr, -1, strdata3, xmlStr.GetLength()*2, NULL, NULL);
		//MessageBox(strdata3,_T("test"),MB_OK);
		for(int i=0;i < (int)strlen(tmp);i++)
		{
			strdata3[i]=tmp[i];
		}
		
		if( m_iXMLDoc->loadXML(CComBSTR(strdata3),&bSuccess) == S_OK)
		{
			//AfxMessageBox(_T("load xml success"));
			CString getdata;
			CString temp;


			
			if(m_iXMLDoc->get_documentElement(&m_iRootElm) == S_OK)
			{
				//AfxMessageBox(_T("get_documentElement success"));
				int listnum=0;	
				CXmlElement eroot(m_iRootElm);
				CXmlElement emessage = eroot.subnode(L"data-message");
				CXmlElement eResultMsg = emessage.subnode(L"ResultSet");
				CXmlElement eCols;
				eCols = eResultMsg.subnode(L"row",L"id",inttostr(listnum++));
				CString strs=eCols.val();
				while(strs.GetLength()>0)
				{
				CXmlElement eColsid = eCols.subnode(L"col",L"name",L"ID");	
				temp=_T("ID:");
				//getdata+=temp;
				getdata+=eColsid.val();
				temp=_T("\r\n");
				getdata+=temp;
				CXmlElement eColscardcode = eCols.subnode(L"col",L"name",L"WMKID");
				temp=_T("文明卡编号:");
				//getdata+=temp;
				getdata += eColscardcode.val();
				temp=_T("\r\n");
				getdata +=temp;
				CXmlElement eColstype = eCols.subnode(L"col",L"name",L"TYPE");	
				temp=_T("罚款类型:");
				//getdata+=temp;
				getdata+=eColstype.val();
				temp=_T("\r\n");
				getdata+=temp;
				CXmlElement eColsfkje = eCols.subnode(L"col",L"name",L"FKJE");	
				temp=_T("罚款金额:");
				//getdata+=temp;
				getdata+=eColsfkje.val();
				temp=_T("\r\n");
				getdata+=temp;
				CXmlElement eColsflag = eCols.subnode(L"col",L"name",L"YJFK");	
				temp=_T("是否已交罚款:");
				//getdata+=temp;
				getdata+=eColsflag.val();
				temp=_T("\r\n");
				getdata+=temp;
				CXmlElement eColscontents = eCols.subnode(L"col",L"name",L"WZXX");	
				temp=_T("详细内容:");
				//getdata+=temp;
				getdata+=eColscontents.val();
				temp=_T("\r\n");
				getdata+=temp;
				CXmlElement eColsjf = eCols.subnode(L"col",L"name",L"JF");	
				temp=_T("积分:");
				//getdata+=temp;
				getdata+=eColsjf.val();
				temp=_T("\r\n");
				getdata+=temp;
				CXmlElement eColstime = eCols.subnode(L"col",L"name",L"WFTIME");	
				temp=_T("违法时间:");
				//getdata+=temp;
				getdata+=eColstime.val();
				temp=_T("\r\n");
				getdata+=temp;
				

				temp=_T("\r\n|\r\n");
				getdata +=temp;

				eCols = eResultMsg.subnode(L"row",L"id",inttostr(listnum++));
				strs=eCols.val();
				}
				//listnum=2;
				//getdata=("1|6");
				CString datas;
				char anjiannum[20];
				strcpy(anjiannum,"");
				sprintf(anjiannum,"%d",listnum);
				datas=anjiannum;
				datas+=_T("|");
				datas+=getdata;
				
//////////////////////////////////////////////////////
				/*
			CFile myFile;
		  CFileException ex;
		  if(!myFile.Open(_T("\\My Documents\\contents.txt"),CFile::modeCreate | CFile::modeWrite,&ex))
			{
			TCHAR szError[1024];
			ex.GetErrorMessage(szError, 1024);
			AfxMessageBox(szError);
		//	return false;
			}
		  else
		  {
			 
			CArchive ar(&myFile, CArchive::store);
			ar<<datas;
			ar.Close();		  
		    myFile.Close();
			
		  }
		  */
///////////////////////////////////////////////////////
		        //delete []tmp;
				//delete []strdata3;
		        strcpy(tmp,"");
				strcpy(strdata3,"");
				m_iRootElm.Release();
				//m_iXMLDoc.Release();
				return datas;
					
			}
			
			}	
	
	}		

	return L"";
}

CString CXmlParse::parseXmlzhizhao(CString xmlStr, const CString tag)
{
	if(!xmlStr.IsEmpty() && !tag.IsEmpty())
	{
		
		VARIANT_BOOL bSuccess=false;	

		    int xmlsize=0;
			int lensxml=0;
			char *strdata3= new char[409600];
			char *tmps=new char[2048];
			strcpy(strdata3,"");
			
			CStdioFile csf;
			if(!csf.Open(_T("\\My Documents\\test.txt"),CFile::modeRead | CFile::typeBinary | CFile::shareDenyWrite))
			{
				AfxMessageBox(L"读文件错误!\n文件正在使用中,请先关闭程序!",MB_ICONSTOP);			
			}
			else
			{
				while((lensxml=csf.Read(tmps,2048))>0)
				{
					for(int rr=0;rr<lensxml;rr++)
					{
					strdata3[xmlsize+rr]=tmps[rr];

					}
					xmlsize+=lensxml;
				}
				csf.Close();
			}
			
			
			//AfxMessageBox(xmlcontents);
				
		char *tmp=new char[200];
		strcpy(tmp,"<?xml version=\"1.0\" encoding=\"UTF-16\"?>");
		
	//	WideCharToMultiByte(CP_ACP, 0, xmlStr, -1, strdata3, xmlStr.GetLength()*2, NULL, NULL);
		//MessageBox(strdata3,_T("test"),MB_OK);
		for(int i=0;i < (int)strlen(tmp);i++)
		{
			strdata3[i]=tmp[i];
		}
		
		if( m_iXMLDoc->loadXML(CComBSTR(strdata3),&bSuccess) == S_OK)
		{
			//AfxMessageBox(_T("load xml success"));
			CString getdata;
			CString temp;


			
			if(m_iXMLDoc->get_documentElement(&m_iRootElm) == S_OK)
			{
				//AfxMessageBox(_T("get_documentElement success"));
				int listnum=0;	
				CXmlElement eroot(m_iRootElm);
				CXmlElement emessage = eroot.subnode(L"data-message");
				CXmlElement eResultMsg = emessage.subnode(L"ResultSet");
				CXmlElement eCols;
				eCols = eResultMsg.subnode(L"row",L"id",inttostr(listnum++));
				CString strs=eCols.val();
				while(strs.GetLength()>0)
				{
				CXmlElement eColsid = eCols.subnode(L"col",L"name",L"COMPANYNAME");	
				temp=_T("企业名称:");
				//getdata+=temp;
				getdata+=eColsid.val();
				temp=_T("\r\n");
				getdata+=temp;
				CXmlElement eColscardcode = eCols.subnode(L"col",L"name",L"COMPANYADDRESS");
				temp=_T("企业地址:");
				//getdata+=temp;
				getdata += eColscardcode.val();
				temp=_T("\r\n");
				getdata +=temp;
				CXmlElement eColstype = eCols.subnode(L"col",L"name",L"RULENAME");	
				temp=_T("法人代表:");
				//getdata+=temp;
				getdata+=eColstype.val();
				temp=_T("\r\n");

⌨️ 快捷键说明

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