我有两个XML文件,一个是来自其他的修改版本。每个节点有大约80个节点,每个节点有大约30个子节点(是的,总共大约2400个节点)。
差异很小(通常在子节点值中),我需要在单独的文件中获取不同的节点。如果子节点中存在差异,则子节点及其父节点应包含在单独的文件中。
我正在经历逐节点检查。第一个文件中的节点,第二个文件中包含所有节点。然后是第一个文件的第二个节点,第二个文件中的所有节点都是一个。如果匹配,请为匹配节点的子节点重复相同的操作。
上述内容实际上非常繁琐,程序需要一些时间才能执行(大约7000个节点比较)。 有更快的比较方法吗?
答案 0 :(得分:0)
由于您的XML文件很大,因此使用DOM分析器将是一个坏主意,因为它将占用大量内存。另一个解决方法是实现SAX解析器。 SAX解析器按顺序解析XML文件,并使用具有三个函数(startElement,endElement和字符)的处理程序。
逐个节点检查是正确的主意。嵌套循环肯定会花费很多时间,但是如果与SAX解析器一起使用,它们在内存方面将非常有效。