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 クラスはタグ付きで適切に出力しますが、タグは必要ありません。