用于序列化的DOM或SAX 我在java中创建C++服务器和客户端。为了在它们之间交换数据结构,我计划使用xerces-c使用XML,因为这在双方都可用。由于我对XML引擎只有非常初步的了解,所以我在谷歌上搜索我需要什么

用于序列化的DOM或SAX 我在java中创建C++服务器和客户端。为了在它们之间交换数据结构,我计划使用xerces-c使用XML,因为这在双方都可用。由于我对XML引擎只有非常初步的了解,所以我在谷歌上搜索我需要什么,c++,xml-serialization,C++,Xml Serialization,因此,在任何一侧接收XML时,我都会使用SAX解析器。但是,如果我正确理解了这一点,那么我就不能使用它将对象序列化为XML,所以当我想要发送数据时,我必须使用DOM,对吗 现在我至少更好地理解了SAX和DOM之间的区别,所以我认为使用SAX更容易,但它不能用于创建XML,只能用于读取XML 现在我的问题是,两者都使用是一个好主意,还是在这种情况下我应该坚持使用DOM?实际处理应该相当简单。当一个对象应该被传输时,它应该将它的数据复制到被传输的XML中。所以,除了反序列化之外,我不需要做查询。<

因此,在任何一侧接收XML时,我都会使用SAX解析器。但是,如果我正确理解了这一点,那么我就不能使用它将对象序列化为XML,所以当我想要发送数据时,我必须使用DOM,对吗

现在我至少更好地理解了SAX和DOM之间的区别,所以我认为使用SAX更容易,但它不能用于创建XML,只能用于读取XML


现在我的问题是,两者都使用是一个好主意,还是在这种情况下我应该坚持使用DOM?实际处理应该相当简单。当一个对象应该被传输时,它应该将它的数据复制到被传输的XML中。所以,除了反序列化之外,我不需要做查询。

< P>首先,您可能需要查看<强> Apache Swift >,这是一个完美的框架,用于生成一个C++服务器,用java客户端来交换这些语言之间的数据结构。您可以学习swift并在大约2小时内自动生成客户端和服务器源代码。查看下面的示例:

回答你的问题。我认为您正确理解DOM和SAX

DOM:一次读取整个XML文档并将其放入对象(RAM中)。这不适用于非常大的文档,因为这些文档不适合RAM

SAX:它逐行读取XML文档,您开发的解析器逐行决定要做什么

如果您有一个现有对象,通常直接从中生成XML。您可以使用SimpleXMLFramework()来序列化和反序列化Java对象


我认为您应该使用DOM策略尽可能多地读写,因为它更容易,而且会给您带来更少的麻烦,因为您正在交换和序列化对象。只有在RAM中有非常大的文件(或同时有很多非常小的文件)时,才使用SAX。

< P>首先,您可能需要查看<强> Apache Swift ,这是一个完美的框架,用于生成一个C++服务器,用java客户端来交换这些语言之间的数据结构。您可以学习swift并在大约2小时内自动生成客户端和服务器源代码。查看下面的示例:

回答你的问题。我认为您正确理解DOM和SAX

DOM:一次读取整个XML文档并将其放入对象(RAM中)。这不适用于非常大的文档,因为这些文档不适合RAM

SAX:它逐行读取XML文档,您开发的解析器逐行决定要做什么

如果您有一个现有对象,通常直接从中生成XML。您可以使用SimpleXMLFramework()来序列化和反序列化Java对象

我认为您应该使用DOM策略尽可能多地读写,因为它更容易,而且会给您带来更少的麻烦,因为您正在交换和序列化对象。仅当RAM中有非常大的文件(或同时有许多非常小的文件)时才使用SAX。

这可能属于此可能属于此