比较2 xmls与java中的不同标签

时间:2012-05-28 04:10:46

标签: java xml xmlunit

我想比较2个XML,它们具有相同的数据但标签名称不同。我需要比较两个(输入和输出)并使用JAVA显示结果。

例如

XML 1

<hometown>newyork</hometown>
...

XML 2

<city>newyork</city>

我需要验证XML 1中的hometown标记值是否与XML 2中的city标记值相同。

有人有任何建议吗?

2 个答案:

答案 0 :(得分:1)

问题非常广泛。鉴于提供的信息,我认为使用DOM或JDOM等文档树的内存表示是个好主意。在比较具有不同结构的文档时,像StAX或SAX这样的流式解析器将更难使用。如果两种格式具有相似的表现力,那么另一种方法是使用XML转换将一个文档转换为另一个文档的格式。然后规范化两者并在此之后做一个直接的文本差异。

答案 1 :(得分:1)

好吧,我采取了一种方法,我创建了一个映射文档,说明输入中的哪个Tag映射到输出中的哪个标记。然后我解析输入和输出XML并将它们转换为HashMaps(键值对)。现在,当我想比较输入XML的值时,我遍历inputTags列表并从映射表中搜索标记的对应部分,一旦我有输入和输出标记的值,我就比较它并发布结果