如何從TinyXML2中的節點和子節點獲取文本?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>
和<i>
元素之後出現的所有文本?我該如何解決這個問題?此外,XMLPrinter類正確地打印出與標籤,但我不想標籤。