首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >插入元素(TinyXml)

插入元素(TinyXml)
EN

Stack Overflow用户
提问于 2018-12-11 12:01:58
回答 1查看 342关注 0票数 1

我想在xml文件中添加元素。有人能帮我吗?

下面是我的代码测试。

代码语言:javascript
复制
 <?xml version="1.0" encoding="UTF-8" ?>
    <category1>
        <category2 name="1">1.79639 0.430521</category2 >
        <category2 name="2">2.06832 0.652695</category2 >
        <category2 name="3">1.23123 0.111212</category2 >    <-- new
    </category1>

代码:

代码语言:javascript
复制
 if (doc.LoadFile()) {
                TiXmlHandle docHandle(&doc);
                TiXmlElement* fileLog = docHandle.FirstChild("category1").ToElement();
                if (fileLog) {
                    TiXmlElement newCategory2("category2");
                    newCategory2.SetAttribute("name", "5");
                    fileLog->InsertEndChild(newCategory2);
                }
            }

希望能得到任何人的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-11 13:32:56

TiXML不接受XML标记之间的空格作为</category2 >,它必须是</category2>。您的LoadFile将返回false,节点将不会被插入。

以下代码按预期工作:

代码语言:javascript
复制
    const char * szTiXML = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>"
        "<category1>"
        "<category2 name=\"1\">1.79639 0.430521</category2>"
        "<category2 name=\"2\">2.06832 0.652695</category2>"
        "<category2 name=\"3\">1.23123 0.111212</category2>"
        "</category1>";

    TiXmlDocument doc;
    doc.Parse( szTiXML );
    //if (doc.LoadFile()) 
    {
        TiXmlHandle docHandle(&doc);
        TiXmlElement* fileLog = docHandle.FirstChild("category1").ToElement();
        if (fileLog) {
            TiXmlElement newCategory2("category2");
            TiXmlText myText("Hello From SO");

            newCategory2.SetAttribute("name", "5");
            newCategory2.InsertEndChild(myText);

            fileLog->InsertEndChild(newCategory2);
        }

        doc.Print(stdout);
    }

输出:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" ?>
<category1>
    <category2 name="1">1.79639 0.430521</category2>
    <category2 name="2">2.06832 0.652695</category2>
    <category2 name="3">1.23123 0.111212</category2>
    <category2 name="5">Hello From SO</category2>
</category1>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53723795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档