如何将下面的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留言给我,或者私信我
[解决办法]
没仔细看
你定义结构体,或者结构体中包含结构体
再可能用数组