加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 使用TinyXML解析XML元素

发布时间:2020-12-16 03:27:38 所属栏目:百科 来源:网络整理
导读:更新:仍然无法正常工作:(我已更新代码部分以反映我目前拥有的内容. 对于使用过TinyXML的人来说,这应该是一个非常简单的问题.我正在尝试使用TinyXML来解析XML文档并提取一些值.我想出了昨天如何在库中添加,我已经成功加载了文档(嘿,这是一个开始). 我一直在
更新:仍然无法正常工作:(我已更新代码部分以反映我目前拥有的内容.

对于使用过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;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读