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