我正在尝试从这样的消息中解析 xml:
char * data = message.c_str ();
如何使用字符串或 char 数组数据创建 xmlDoc,这意味着没有 xml 文件?
我认为你可以通过TiXmlDocument 中的Parse方法来做到这一点。所以像:
TiXmlDocument doc;
doc.Parse((const char*)data, 0, TIXML_ENCODING_UTF8);
您可以使用中std::istream& operator >> (std::istream& in, TiXmlNode& base);
定义的函数tinyxml.h
:
C++ 风格输入:
基于
std::istream operator>>
从流中读取 XML,使其可用于网络传输。棘手的部分是知道 XML 文档何时完成,因为流中几乎肯定会有其他数据。TinyXML 将在读取根元素后假定 XML 数据是完整的。换句话说,包含多个根元素的结构不良的文档将无法正确读取。另请注意,由于 STL 的实现和 TinyXML 的限制,operator>> 比 Parse 慢一些。