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