Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ std::string xml字符串到对象_C++_Xml_String_Xml Parsing - Fatal编程技术网

C++ std::string xml字符串到对象

C++ std::string xml字符串到对象,c++,xml,string,xml-parsing,C++,Xml,String,Xml Parsing,获取std::string类型的XML字符串并将其转换为内存中的XML对象的最有效方法是什么,对象结构并不重要,我想要的是,我是否需要逐个字符地检查字符串并挑出所有片段,或者是否有更简单的方法?最简单的方法可能是使用库来完成 如果您想自己这样做,您需要解析包含XML代码的字符串。有很多方法可以做到这一点;最简单的可能是递归下降解析器。看一看Arabica:在我所知道的所有XML库/包装器中,它对std最为友好。试试Expat,它小巧、用户友好且免费: 您可以使用它,它将获取字符串并生成DOM(文

获取std::string类型的XML字符串并将其转换为内存中的XML对象的最有效方法是什么,对象结构并不重要,我想要的是,我是否需要逐个字符地检查字符串并挑出所有片段,或者是否有更简单的方法?

最简单的方法可能是使用库来完成


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

看一看Arabica:在我所知道的所有XML库/包装器中,它对std最为友好。

试试Expat,它小巧、用户友好且免费:

您可以使用它,它将获取字符串并生成DOM(文档对象模型)表示。文档可以,但这不是最容易使用的库。当然只有窗户

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


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

使用。不是一个高度复杂的库,易于使用。可移植,用C编写,但可以绑定到其他语言,还有大量示例可供使用和学习。

最有效的方法仍然是使用其他人已经开发和调试的库。@peoro-您需要解析包含XML代码的字符串-真的吗?许多XML库将获取字符串并将其转换为对象模型格式。MSXML可以做到这一点,但它是一种避孕药,因为它使用COM编程隐喻。您的基本观点是正确的,但我相信推荐使用哪一个库也会很有用。使用“如果您想自己这样做”,我的意思是“如果您不想依赖任何XML库”…有人能推荐一个库吗?仅仅说“使用库”并没有多大帮助。@naspinski:这是一个不错的方法,但你会发现成千上万的XML库:许多框架提供了处理XML文件的函数(例如:)。也看看其他答案。@Tony-我不怪你。我敢肯定,使用Xerces或其他许多产品都不需要这些。