vc中用mfc读取xml文档 平台:VC6.0或VS2010

2025-05-22 17:54:40
推荐回答(3个)
回答1:

程序发到你邮箱了。里面有详细注释
核心代码如下
CFileDialog fileDlg(TRUE);
fileDlg.m_ofn.lpstrTitle = _T("选择XML文件");
fileDlg.m_ofn.lpstrFilter = _T("Text Files(*.xml)\0*.xml\0All Files(*.*)\0*.*\0\0");

if(IDOK == fileDlg.DoModal())
{
CFile inFile;
inFile.Open(fileDlg.GetPathName(), CFile::modeRead | CFile::typeBinary, NULL);

UINT nFileLen = inFile.GetLength();
char* pBuf = new char[nFileLen + 1];
pBuf[nFileLen] = 0;
inFile.Read(pBuf, nFileLen);
CString strFile = pBuf;

int nIndex;
UpdateData();

m_FilePath = fileDlg.GetPathName();

nIndex = strFile.Find(_T("childnode1"), 0);
m_Edit11 = strFile.Mid(nIndex + 20, 7);
m_Edit21 = strFile.Mid(nIndex + 38, 7);

nIndex = strFile.Find(_T("childnode2"), 0);
m_Edit12 = strFile.Mid(nIndex + 20, 7);
m_Edit22 = strFile.Mid(nIndex + 38, 7);

nIndex = strFile.Find(_T("childnode3"), 0);
m_Edit13 = strFile.Mid(nIndex + 20, 7);
m_Edit23 = strFile.Mid(nIndex + 38, 7);

UpdateData(FALSE);

delete pBuf;

inFile.Close();
}

回答2:

已发送
不过,我的只有两层,你看着办吧

还有上面一楼的那个,你根本就是文件操作(fileOpen)xml有自己的接口
你要用文件操作的话,如果是下面的格式:

-
-
-




- //这边有变化







这种格式你就根本不能读取指定节点,你会12个数据都读出,而不是6个

回答3:

这样叫核心~~~
你的代码根本不能提前xml文件~~
回答了就耐心的给别人写个完整点的吧。。