【问题标题】:Extracting sub-tree XML string with TinyXml2使用 TinyXml2 提取子树 XML 字符串
【发布时间】:2014-12-31 20:28:52
【问题描述】:

我想做和this question里的人一模一样的事情。

我想将一个 XML 子元素(及其所有子元素)转换为 XML 字符串,所以如果 XML 结构是

<parent>
    <child>
        <value>abc</value>
    </child>
<parent>

我想要子元素的xml,例如

<child>
    <value>abc</value>
</child>

我不关心空格。问题是另一个问题中的accepted answer 似乎已过时,因为 XMLElement 对象没有“打印”方法。我可以用 TinyXml2 做到这一点吗?

【问题讨论】:

    标签: c++ xml tinyxml2


    【解决方案1】:

    我编写了以下对我有用的函数。请注意,它可能有错误——我正在处理非常简单的 XML 文件,所以我不会假装我已经测试了所有案例。

    void GenXmlString(tinyxml2::XMLElement *element, std::string &str)
    {
        if (element == NULL) {
            return;
        }
    
        str.append("<");
        str.append(element->Value());
        str.append(">");
    
        if (element->GetText() != NULL) {
            str.append(element->GetText());
        }
    
        tinyxml2::XMLElement *childElement = element->FirstChildElement();
        while (childElement != NULL) {
            GenXmlString(childElement, str);
            childElement = childElement->NextSiblingElement();
        }
    
        str.append("</");
        str.append(element->Value());
        str.append(">");
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-28
    • 2013-04-09
    • 1970-01-01
    • 1970-01-01
    • 2017-04-01
    • 2015-05-10
    相关资源
    最近更新 更多