1

我正在尝试从这样的消息中解析 xml:

char * data = message.c_str ();

如何使用字符串或 char 数组数据创建 xmlDoc,这意味着没有 xml 文件?

4

2 回答 2

4

我认为你可以通过TiXmlDocument 中的Parse方法来做到这一点。所以像:

TiXmlDocument doc;
doc.Parse((const char*)data, 0, TIXML_ENCODING_UTF8);
于 2011-05-19T18:32:40.133 回答
2

您可以使用中std::istream& operator >> (std::istream& in, TiXmlNode& base);定义的函数tinyxml.h

C++ 风格输入:

基于std::istream operator>>

从流中读取 XML,使其可用于网络传输。棘手的部分是知道 XML 文档何时完成,因为流中几乎肯定会有其他数据。TinyXML 将在读取根元素后假定 XML 数据是完整的。换句话说,包含多个根元素的结构不良的文档将无法正确读取。另请注意,由于 STL 的实现和 TinyXML 的限制,operator>> 比 Parse 慢一些。

于 2011-05-19T18:33:26.550 回答