有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java自定义XML文件比较

我看到有很多关于XML比较的帖子,但我所看到的并没有一篇能够解决我的问题

我们有一些XML格式的文本文档(产品描述、标题和段落)正在更新(即版本),我的任务是制作更改摘要。也就是说,我们希望获取两个连续文件并生成第三个文件;标题结构(大纲)将被保留,但只保留有变化的段落——添加和删除都应该被标记

因此,我一直在试图找到一种方法来遍历DOM树并检测添加和删除,但在可靠地检测它们时遇到了问题。这显然是因为我应该做一个diff——但我不能使用普通的diff,因为我想在每个元素中做单独的diff,因为我不能使用传统的diff结果,但需要一个完全格式化的xml摘要

在我尝试解决“最长公共子序列问题”之前,有什么提示吗?这将是一项艰巨的任务


共 (3) 个答案

  1. # 1 楼答案

    事实证明,当时我的需求没有解决方案!同时,我开发了自己的xml diff例程,专门针对我的问题,所以我最终找到了一个可行的解决方案

    然后,在2011年末,这篇文章发表了:Slashdot: Researchers Expanding Diff, Grep Unix Tools

    达特茅斯计算机科学家介绍了grep和diff Unix命令行实用程序的变体,它们可以处理更复杂的数据类型。新程序名为无上下文Grep和分层Diff,将提供解析数据块而不是单行的能力。这项研究的部分资金来自谷歌和美国能源部

  2. # 2 楼答案

    DeltaXML产品是解决这个问题的专业解决方案,但它不是免费的。购买它可能比建造自己的房子便宜

  3. # 3 楼答案

    我建议使用XMLUnit作为差分引擎。它提供了使用您自己的DifferenceListener的能力,每当两个节点不同时,就会通知您。在处理程序中,您可以处理将适当的DOM节点添加到目标文档中的过程