首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

怎么将上面的xml保存到一个结构体中

2012-11-08 
如何将下面的xml保存到一个结构体中我想解决下面的问题:ProcessInfo xxxAAAAFileInfoXXX.EXEXXX.DL

如何将下面的xml保存到一个结构体中
我想解决下面的问题:
<ProcessInfo xxx="AAAA">
<FileInfo>
XXX.EXE
XXX.DLL
...
</FileInfo>
</ProcessInfo>
..
<ProcessInfo xxx="BBBB">
<FileInfo>
yyy.EXE
12.TXT
AA.SYS
..
</FileInfo>
</ProcessInfo>

我想把上面的xml保存为一个结构体,ProcessInfo有N个节点,里面的FileInfo也有N个节点
我的想法是把ProcessInfo作为一个deque,里面的FileInfo也作为一个deque,那么这样就会出现一个deque结构体里面嵌套了一个deque类型的元素,因为这个deque类型的元素大小不一定,我不知道如何malloc,或者还有什么其它的方法保存这种xml结构?,多谢~~

[解决办法]
之前用tinyxml + vector实现过一个类似任务。(vector和deque差不多,都是STL容器)

不一定要用malloc的,你用封装好的string和CString比你每次用malloc计算他的大小要方便的多

[解决办法]
单位的东西,发不出来的。
给你找了个TinyXML的例子
TinyXML的例子
这东西很容易的。

你结构体设计的稍微有点问题。
WCHAR szFileName[MAX_PATH];别用这种
用CString或者string ,前者是MFC的,后面是STL的
不然你每次都要处理空间问题,很麻烦的。

[解决办法]
里面不是有SaveFile这个方法的么?
CTiny里面就有啊。

就可以保存了啊
[解决办法]
上一段代码吧

C/C++ code
//解析整棵xml树,保存入队列std::vector<Job>& JobCRWXml::ParseXmlTree(HWND hwnd,std::vector<Job>& output){    HANDLE element(NULL);        HANDLE root(NULL);    root = m_xml.GetRootElement();    if(0==root)        return output;    element = m_xml.GetFistChildElement(root);    while (element != NULL)    {        Job job = ParseElementJob (element,hwnd); //ParseElementJob 要根据XML结构自己细化        //job.JobStatus=-1;        output.push_back(job);        element = m_xml.GetNextElement(element);        //output.push_back(job);    }    return output;}
[解决办法]
这是我自己的业务啊。逻辑比较复杂,和你关系不大。

你那个XML,我晚上帮你定义下吧,感觉很简单。把QQ留言给我,或者私信我
[解决办法]
没仔细看

你定义结构体,或者结构体中包含结构体 

再可能用数组

热点排行