2

この質問の人とまったく同じことをしたい。

XML 子要素 (およびそのすべての子要素) を XML 文字列に変換したいので、XML 構造が

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

子要素の xml が必要です。

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

空白は気にしません。問題は、XMLElement オブジェクトの「印刷」メソッドがないため、他の質問から受け入れられた回答が古くなっているように見えることです。TinyXml2でこれを行うことはできますか?

4

1 に答える 1

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(">");
}
于 2015-01-02T18:02:19.987 に答える