0

TinyXML2 のノードとサブノードからテキストを取得するにはどうすればよいでしょうか?

XMLPrinter クラスは必要なことを行っているようですが、テキストが正しく印刷されません。

私のXML:

<div>The quick brown <b>fox</b> jumps over the <i>lazy</i> dog.</div>

XMLPrinter クラスを拡張する私のクラス:

class XMLTextPrinter : public XMLPrinter {
    virtual bool    VisitEnter (const XMLDocument &) { return true; }
    virtual bool    VisitExit (const XMLDocument &)  { return true; }
    virtual bool    VisitEnter (const XMLElement &e, const XMLAttribute *)  {
        auto text = e.GetText();
        if(text) {
            std::cout << text;
        }
        return true;
    }
    virtual bool    VisitExit (const XMLElement &e)  { return true; }
    virtual bool    Visit (const XMLDeclaration &)  { return true; }
    virtual bool    Visit (const XMLText &e) { return true; }
    virtual bool    Visit (const XMLComment &)  { return true; }
    virtual bool    Visit (const XMLUnknown &)  { return true; }
};

私のコード:

XMLDocument document;
document.Parse(..., ...);

auto elem = ...;

XMLTextPrinter printer;
elem->Accept(&printer);

出力:

The quick brown foxlazy

<b>and<i>要素の後に続くすべてのテキストを無視するのはなぜですか? どうすればこれを解決できますか? また、XMLPrinter クラスはタグ付きで適切に出力しますが、タグは必要ありません。

4

1 に答える 1