📄 xmlparse.cpp
字号:
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 + -