
对于使用过TinyXML的人来说,这应该是一个非常简单的问题.我正在尝试使用TinyXML来解析XML文档并提取一些值.我想出了昨天如何在库中添加,我已经成功加载了文档(嘿,这是一个开始).
我一直在阅读手册,我无法弄清楚如何提取个人属性.谷歌搜索后,我还没有找到我的具体例子的例子,所以也许这里使用过TinyXML的人可以提供帮助.下面是XML的一部分,我已经开始解析它了.
XML:
<EGCs xmlns="http://tempuri.org/XMLSchema.xsd"> <card type="EGC1"> <offsets> [ ... ] </offsets> </card> <card type="EGC2"> <offsets> [ ... ] </offsets> </card></EGCs>
加载/解析代码:
tixmldocument doc("EGC_Cards.xml");if(doc.Loadfile()){ tixmlHandle hDoc(&doc); tixmlElement* pElem; tixmlHandle hRoot(0); pElem = hDoc.FirstChildElement().Element(); if (!pElem) return false; hRoot = tixmlHandle(pElem); //const char *attribval = hRoot.FirstChild("card").toElement()->Attribute("card"); pElem = hDoc.FirstChild("EGCs").Child("card",1).toElement(); if(pElem) { const char* tmp = pElem->GetText(); CComboBox *combo = (CComboBox*)GetDlgitem(IDC_EGC_CARD_TYPE); combo->AddString(tmp); }} 我想拉出每张卡片“type”并将其保存为字符串以放入组合框中.如何访问此属性成员?
解决方法 经过大量的代码游戏,这是解决方案! (在 HERE的帮助下)tixmldocument doc("EGC_Cards.xml");combo = (CComboBox*)GetDlgitem(IDC_EGC_CARD_TYPE);if(doc.Loadfile()){ tixmlHandle hDoc(&doc); tixmlElement *pRoot,*pParm; pRoot = doc.FirstChildElement("EGCs"); if(pRoot) { pParm = pRoot->FirstChildElement("card"); int i = 0; // for sorting the entrIEs while(pParm) { combo->InsertString(i,pParm->Attribute("type")); pParm = pParm->NextSiblingElement("card"); i++; } }}else { AfxMessageBox("Could not load XML file."); return false;} 总结 以上是内存溢出为你收集整理的c – 使用TinyXML解析XML元素全部内容,希望文章能够帮你解决c – 使用TinyXML解析XML元素所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)