2010-11-04 126 views
0

将std :: string类型的XML字符串转换为内存中的XML对象的最有效方法是什么?对象结构不重要,我之后是我是否需要通过字符来检查字符串char并挑选出所有的部分或者是否有更简单的方法?std :: string xml string to object

回答

2

最简单的方法可能是使用库来做到这一点。

如果你想自己做,你需要解析包含XML代码的字符串。有很多方法可以做到这一点;最简单的可能是一个递归下降解析器。

+0

“最有效”仍然是使用其他人已经开发和调试的库。 – 2010-11-04 12:54:29

+1

@peoro - *你需要解析包含XML代码的字符串* - 真的吗?许多XML库将采用一个字符串并将其转换为对象模型格式。 MSXML将做到这一点,但它是一个使用药片,因为它使用COM编程隐喻。你的基本观点是正确的,但是我确信,推荐使用哪一个也是有用的。 – 2010-11-04 13:21:21

+1

“如果你想自己做那个”,我的意思是“如果你不想在任何XML库上转发”...... – peoro 2010-11-04 13:24:31

0

您可以使用MSXML为此,将采取串并产生DOM(文档对象模型)表示。文档可以,但这不是最简单的库。当然只有当然。

优点 - 可靠,应用广泛。缺点 - 你必须在一定程度上学习COM编程模型。不是最直观的使用。

更简单的选项是xerces。示例文件解析代码here,还有其他示例。我在不同的工作中使用了这个和MSXML。

+0

我不想使用COM ... – 2010-11-04 13:24:52

+1

@Tony - 我不怪你。我相信你不需要使用Xerces或者其他很多其他的Xerces。 – 2010-11-04 13:26:56

0

使用libxml2。不是一个非常复杂的库,并且易于使用。可移植性,用C语言编写,但与其他可用语言绑定,以及大量使用和学习的示例。