【发布时间】:2014-10-02 21:09:13
【问题描述】:
我有一个 C++ 中的 xml 阅读器,我正在制作一个错误函数或校对器,它只将完整的 xml 树发送到解析器。数据位于 char 数组中,例如
char chunkdata[245];
然后将其转换为类似的字符串
String data(chunkdata);
并解析数据。 该程序将随时获取分块数据并进行处理。分块数据的唯一问题是它有时会发送不完整的 xml 树......所以我可能只能得到 char 数组中的一半内容,例如
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to> Tove</to>
<from>Jani</from>
<heading>Remin
剩下的几百万秒后得到
der</heading>
<body>Don't forget me this weekend!</body>
</note>
并且在处理之后会产生两个字符串并使程序崩溃。
我可以在我的代码中添加什么以等待添加(如果未完成)...或者仅获取完整的 xml 树并留下剩余的以添加到其余部分...我尝试了字符串 FIND 之类的东西将处理的字符串子字符串稍后添加剩余的但它没有工作..有什么建议吗???谢谢
【问题讨论】:
-
除非你有足够的内存将整个文件加载到一个字符串中,否则你需要注意“我读到的部分不完整,让我们继续下一部分”类型的场景。一次读取 245、3000 或 9000 个字符都没有关系,您必须在某个时候处理它。
标签: c++ xml xml-parsing