将XML文件转换为c++;在Linux中使用终端 我有大数据存储为XML文件,我需要通过使用Ubuntu 14.04中的GNOME终端将它们转换成C++。

将XML文件转换为c++;在Linux中使用终端 我有大数据存储为XML文件,我需要通过使用Ubuntu 14.04中的GNOME终端将它们转换成C++。,c++,xml,ubuntu,C++,Xml,Ubuntu,最好的方法是什么?有人建议编写shell脚本来处理这个问题,因为我们处理大数据。 < P>从C++程序中读取XML数据文件的最佳方法是使用XML库。在internet上搜索“C++XML库” 选项1将数据保留在XML文件中,并在运行时读取。(推荐) 您可能想做的是将XML文件留在磁盘上,然后编写程序在运行时读取这些文件。也许这些XML文件的文件名可以作为命令行传递给您的程序 然后,您的程序“读取”这些XML文件并将其解析为树结构。有许多现有的XML库可以为您完成所有繁重的解析。一个这样的图书馆就

最好的方法是什么?有人建议编写shell脚本来处理这个问题,因为我们处理大数据。

< P>从C++程序中读取XML数据文件的最佳方法是使用XML库。在internet上搜索“C++XML库”

选项1将数据保留在XML文件中,并在运行时读取。(推荐)

您可能想做的是将XML文件留在磁盘上,然后编写程序在运行时读取这些文件。也许这些XML文件的文件名可以作为命令行传递给您的程序

然后,您的程序“读取”这些XML文件并将其解析为树结构。有许多现有的XML库可以为您完成所有繁重的解析。一个这样的图书馆就是。然后你的天体物理学代码会分析你的数据

选项2-“使用xxd-i”将XML转换为C资源文件

<>如果你想将XML转换成C++代码,那么我可以提供的最好的代码是<代码> XXD< /COD>命令,使用<代码> -I/COD>选项。这将把文件转换成C代码中的无符号字符数组。例如:

ubuntu@ip-10-0-0-15:~$ cat foo.xml                                                                                   
<foo>                                                                                                                
   <data>This is some data</data>                                                                                    
</foo>                                                                                                               
ubuntu@ip-10-0-0-15:~$ xxd -i foo.xml                                                                                
unsigned char foo_xml[] = {0x3c, 0x66, 0x6f, 0x6f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x64, 0x61, 0x74, 0x61, 0x3e, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x3c, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x3e, 0x0a, 0x3c, 0x2f, 0x66, 0x6f, 0x6f, 0x3e, 0x0a};
unsigned int foo_xml_len = 47;  
ubuntu@ip-10-0-0-15:~$cat foo.xml
这是一些数据
ubuntu@ip-10-0-0-15:~$xxd-i foo.xml
无符号字符foo_xml[]={0x3c,0x66,0x6f,0x6f,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x61,0x74,0x61,0x6e,0x54,0x68,0x69,0x73,0x20,0x73,0x6f,0x6d,0x65,0x20,0x64,0x61,0x3c,0x2f,0x61,0x74,0x61,0x6e,0x6e,0x0a,0x6a,0x6f,0x6e,0x6f,0x6f};
无符号整数foo_xml_len=47;
无符号字符数组,
foo_xml
是原始文件的ascii字节数组


在运行时,您可以将该无符号字符数组转换回字符串(不要忘记附加空字符)。然后使用上面提到的XML库解析数据。< /P>你能给出一个XML示例和你想要创建的相应C++的例子吗?你有那些XML样本的模式,并且想把数据映射到C++类吗?有这样的产品,比如@ McTynNeNXML文件包含了原子核的反应率,XML的模式是什么意思?对不起,我是物理学家,你不能把XML转换成C++。XML包含数据,而不是源代码。您将XML转换为C++是什么意思?您想从C++代码中读取XML文件吗?如果是这样的话,前面评论中提到的CodeSynthesis XSD就是一个选项,或者看看。或者你可能在从代码合成中寻找产品。@ Selbee我试图让C++程序计算很多东西,并且依赖于我已经把XML数据转换成一个XML文件的数据,用C++来思考这个问题。但是我们不知道OP的数据布局,而且会有很多全局变量。而且SelBee我有三件事,首先是CERN的根程序,第二是在终端中写入的订单,第三是一个大的数据库,作为一个XML文件,我需要它们一起在一个脚本中,这将是用C++编写的,所以我需要在根目录中构造一棵树。将包含的数据和我已经做的计算,这是我的工作的顺序