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

📄 xmlparse.cpp

📁 该程序是mobile5.0 ppc2003系统下的
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	return L"";
}


CString CXmlParse::parseXml(CString xmlStr)
{
	if(!xmlStr.IsEmpty())
	{
		
		VARIANT_BOOL bSuccess=false;
//		long lengths=xmlStr.GetLength();
		
		//CString xmlcontents;
		/*
		///将xml写入文件中
			
		  CFile myFile;
		  CFileException ex;
		  if(!myFile.Open(_T("\\My Documents\\xml.txt"),CFile::modeCreate | CFile::modeWrite,&ex))
			{
			TCHAR szError[1024];
			ex.GetErrorMessage(szError, 1024);
			AfxMessageBox(szError);
		//	return false;
			}
		  else
		  {
			 
			CArchive ar(&myFile, CArchive::store);
			ar<<xmlStr;
			ar.Close();		  
		    myFile.Close();
			
		  }
		  
		  
		  if(myFile.Open(_T("\\My Documents\\xml.txt"),CFile::modeRead,&ex)==0)
			{
			TCHAR szError[1024];
			ex.GetErrorMessage(szError, 1024);
			AfxMessageBox(szError);
			//	return false;
			}
			CArchive ar(&myFile,CArchive::load);
			ar>>xmlcontents;
			ar.Close();
			myFile.Close();
			*/


		int xmlsize=0;
		int lensxml=0;
		//char *strdata= new char[40960];
		char *tmps=new char[2048];


		//strcpy(strdata,"");

		/*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++)
				{
					strdata[xmlsize+rr]=tmps[rr];
				}
				xmlsize+=lensxml;
			}
			csf.Close();
		}
		*/
		//for(int m=0;m<xmlStr.GetLength();m++){
		//	strdata[m]=xmlStr[m];
		//}

		char *tmp=new char[200];
		strcpy(tmp,"<?xml version=\"1.0\" encoding=\"UTF-16\"?>");
		//char *strdata= new char[409600];
		//WideCharToMultiByte(CP_ACP, 0, xmlStr, -1, strdata, xmlStr.GetLength()*2, NULL, NULL);
		for(int i=0;i < (int)strlen(tmp);i++)
		{
			//xmlStr[i]=tmp[i];
			xmlStr.SetAt(i,tmp[i]);
		}
		
		if( m_iXMLDoc->loadXML(CComBSTR(xmlStr),&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 eResultMsg = eroot.subnode(L"Casecode");
				CString strs=_T("案件编号:"); 
				strs+=eResultMsg.val();
				CXmlElement eCols=eroot.subnode(L"message");
				temp=_T("\r状态:");
				strs+=temp;
				strs+=eCols.val();


				//HWND hwnd;
				//MessageBox(hwnd,strs,L"案件查询结果",MB_OK);
				//delete [] strdata;
			//	strcpy(strdata,"");
				//delete m_iXMLDoc;
				//delete m_iRootElm;
				m_iRootElm.Release();
			//	m_iXMLDoc.Release();
				return strs;
					
			}
			
			}	
	
	}		

	return L"";
}


CString CXmlParse::parseXmlm(CString xmlStr,BOOL flag)
{
	if(!xmlStr.IsEmpty())
	{
		
		VARIANT_BOOL bSuccess=false;
		//CComPtr<IXMLDOMDocument> m_iXMLDocs;
		//CComPtr<IXMLDOMElement> m_iXMLElements;
		//IXMLDOMDocument *m_iXMLDocs=NULL;
		//IXMLDOMElement *m_iXMLElements=NULL;
		
		//CString xmlcontents;
		/*
		///将xml写入文件中
			
		  CFile myFile;
		  CFileException ex;
		  if(!myFile.Open(_T("\\My Documents\\xml.txt"),CFile::modeCreate | CFile::modeWrite,&ex))
			{
			TCHAR szError[1024];
			ex.GetErrorMessage(szError, 1024);
			AfxMessageBox(szError);
		//	return false;
			}
		  else
		  {
			 
			CArchive ar(&myFile, CArchive::store);
			ar<<xmlStr;
			ar.Close();		  
		    myFile.Close();
			
		  }
		  
		  
		  if(myFile.Open(_T("\\My Documents\\xml.txt"),CFile::modeRead,&ex)==0)
			{
			TCHAR szError[1024];
			ex.GetErrorMessage(szError, 1024);
			AfxMessageBox(szError);
			//	return false;
			}
			CArchive ar(&myFile,CArchive::load);
			ar>>xmlcontents;
			ar.Close();
			myFile.Close();
			*/
			//AfxMessageBox(xmlcontents);

		int xmlsize=0;
		int lensxml=0;
		char *strdata1= new char[40960];
		char *tmps=new char[2048];
		strcpy(strdata1,"");

		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++)
			{
			strdata1[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++)
		{
			strdata1[i]=tmp[i];
		}
		
		//AfxMessageBox(CComBSTR(strdata));
		if( m_iXMLDoc->loadXML(CComBSTR(strdata1),&bSuccess) == S_OK)
		{
		//AfxMessageBox(_T("load xml success"));
			CString temp;
			/*
			IXMLDOMDocument m_doc;
			m_doc.Release()
			*/

			
			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();

				if(loginflags ==_T("1"))
				{
					flag=true;
				}
				else 
				{
					flag=false;
				}



				//CXmlElement eResultMsg = eroot.subnode(L"username");
				//CString strs=_T("用户名:"); 
				//strs+=eResultMsg.val();
				CXmlElement eCols=eroot.subnode(L"message");
				temp=_T("\r\n状态:");
				CString strs=temp;
				strs+=eCols.val();

			//	delete m_iXMLDoc;
			//	delete m_iRootElm;

				strcpy(strdata1,"");
				m_iRootElm.Release();
				//m_iXMLDoc.Release();
				//delete [] strdata1;
				return strs;
					
			}
			
			}	
	
	}		

	return L"";
}

CXmlElement CXmlParse::ParseFile(CString fileName)
{//解析查询得到的多个xml文件
	CXmlElement elem;

	if(!fileName.IsEmpty())
	{
		VARIANT_BOOL bSuccess=false;

		int xmlsize=0;
		int lensxml=0;
		char *strdata1= new char[40960];
		char *tmps=new char[2048];
		strcpy(strdata1,"");

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

				}
				xmlsize+=lensxml;
			}
			csf.Close();
			strdata1[xmlsize]='\0';

			//csf.Open(_T("\\My Documents\\a.txt"),CFile::modeWrite | CFile::shareDenyWrite | CFile::modeCreate);
			//csf.Write(strdata1,40960);
			//csf.Close();
		}		
		delete tmps;
		char *tmp=new char[200];//xml中encoding必须是utf-16才能解析出来
		strcpy(tmp,"<?xml version=\"1.0\" encoding=\"UTF-16\"?>");
		for(int i=0;i < (int)strlen(tmp);i++)
		{
			strdata1[i] = tmp[i];
		}
		delete tmp;
				
		if( m_iXMLDoc->loadXML(CComBSTR(strdata1),&bSuccess) == S_OK)
		{
			if(m_iXMLDoc->get_documentElement(&m_iRootElm) == S_OK)
			{	
				CXmlElement eroot(m_iRootElm);
			
				m_iRootElm.Release();
				CXmlElement eDataMessage = eroot.subnode(L"data-message");
				elem = eDataMessage.subnode(L"ResultSet");
					
				return elem;
			}
		}
		delete strdata1;
	}		

	return elem;
}

CXmlElement CXmlParse::ParseJianyiChufaResult(CString str){
	/*CString strResult;
	CXmlElement elem;
	if(!str.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++)
		{
			str.SetAt(i,tmp[i]);
		}
		
		//StrToTchar(str,data);
		if( m_iXMLDoc->loadXML(CComBSTR(str),&bSuccess) == S_OK)
		{
			//CString getdata;
			CString flag;
			//CString temp;
			//CString datas;


			int listnum=0;
			if(m_iXMLDoc->get_documentElement(&m_iRootElm) == S_OK)
			{	
				CXmlElement eroot(m_iRootElm);
				///CXmlElement emessage = eroot.subnode(L"data-message");
				CXmlElement eResultMsg = eroot.subnode(L"resultMsg");
				flag=eResultMsg.val();
			
				m_iRootElm.Release();
				if(flag==_T("1"))//查询结果正常
				{
					CXmlElement eDataMessage = eroot.subnode(L"data-message");
					elem = eDataMessage.subnode(L"ResultSet");
					// = eResultSet.subnode(L"row",L"id",inttostr(listnum++));
					
					return elem;
				}
						
			}

			m_iXMLDoc.Release();
		}
	}		
	return elem;*/
	CString strResult;
	CXmlElement elem;
	if(!str.IsEmpty())
	{
		VARIANT_BOOL bSuccess=false;

		int xmlsize=0;
		int lensxml=0;
		char *strdata1= new char[40960];
		char *tmps=new char[2048];
		strcpy(strdata1,"");

		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++)
			{
			strdata1[xmlsize+rr]=tmps[rr];

			}
			xmlsize+=lensxml;
		}
		csf.Close();
		}		
		
		char *tmp=new char[200];
		strcpy(tmp,"<?xml version=\"1.0\" encoding=\"UTF-16\"?>");
		for(int i=0;i < (int)strlen(tmp);i++)
		{
			//str.SetAt(i,tmp[i]);
			strdata1[i] = tmp[i];
		}
		
		//StrToTchar(str,data);
		if( m_iXMLDoc->loadXML(CComBSTR(strdata1),&bSuccess) == S_OK)
		{
			//CString getdata;
			CString flag;
			//CString temp;
			//CString datas;


			int listnum=0;
			if(m_iXMLDoc->get_documentElement(&m_iRootElm) == S_OK)
			{	
				CXmlElement eroot(m_iRootElm);
				///CXmlElement emessage = eroot.subnode(L"data-message");
				CXmlElement eResultMsg = eroot.subnode(L"resultMsg");
				flag=eResultMsg.val();
			
				m_iRootElm.Release();
				if(flag==_T("1"))//查询结果正常
				{
					CXmlElement eDataMessage = eroot.subnode(L"data-message");
					elem = eDataMessage.subnode(L"ResultSet");
					// = eResultSet.subnode(L"row",L"id",inttostr(listnum++));
					
					return elem;
				}
						
			}
		}
	}		
	return elem;
}

char* CXmlParse::ParseSelectRec(){
	char *strdata1= new char[4096];
	strcpy(strdata1,"");

	CStdioFile csf;
	if(!csf.Open(_T("\\My Documents\\test1.txt"),CFile::modeRead | CFile::typeBinary | CFile::shareDenyWrite))
	{
		AfxMessageBox(L"读文件错误!\n文件正在使用中,请先关闭程序!",MB_ICONSTOP);			
	}
	else
	{
		csf.Read(strdata1,4096);
		csf.Close();
	}	
	return strdata1;
}

CString CXmlParse::parseXmlxgaj(CString xmlStr,BOOL flag)
{
	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;

⌨️ 快捷键说明

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