我想比较2个XML,它们具有相同的数据但标签名称不同。我需要比较两个(输入和输出)并使用JAVA显示结果。
例如
XML 1
<hometown>newyork</hometown>
...
XML 2
<city>newyork</city>
我需要验证XML 1中的hometown
标记值是否与XML 2中的city
标记值相同。
有人有任何建议吗?
答案 0 :(得分:1)
问题非常广泛。鉴于提供的信息,我认为使用DOM或JDOM等文档树的内存表示是个好主意。在比较具有不同结构的文档时,像StAX或SAX这样的流式解析器将更难使用。如果两种格式具有相似的表现力,那么另一种方法是使用XML转换将一个文档转换为另一个文档的格式。然后规范化两者并在此之后做一个直接的文本差异。
答案 1 :(得分:1)
好吧,我采取了一种方法,我创建了一个映射文档,说明输入中的哪个Tag映射到输出中的哪个标记。然后我解析输入和输出XML并将它们转换为HashMaps(键值对)。现在,当我想比较输入XML的值时,我遍历inputTags列表并从映射表中搜索标记的对应部分,一旦我有输入和输出标记的值,我就比较它并发布结果