比较java中具有不同标记的2个XML
我想比较2个XML,它们具有相同的数据,但标记名不同。我需要比较两者(输入和输出),并使用JAVA显示结果 例如 XML 1比较java中具有不同标记的2个XML,java,xml,xmlunit,Java,Xml,Xmlunit,我想比较2个XML,它们具有相同的数据,但标记名不同。我需要比较两者(输入和输出),并使用JAVA显示结果 例如 XML 1 纽约 ... XML 2 纽约 我需要验证XML 1中的家乡标记值是否与XML 2中的城市标记值相同 有人有什么建议吗?问题相当广泛。鉴于所提供的信息,我认为最好使用文档树的内存表示,如DOM或JDOM。在比较具有不同结构的文档时,像StAX或SAX这样的流式解析器将更难使用。如果两种格式的表达能力相似,另一种方法是使用XML转换将一个文档转换为另一个文档的格式。然后
纽约
...
XML 2
纽约
我需要验证XML 1中的家乡
标记值是否与XML 2中的城市
标记值相同
有人有什么建议吗?问题相当广泛。鉴于所提供的信息,我认为最好使用文档树的内存表示,如DOM或JDOM。在比较具有不同结构的文档时,像StAX或SAX这样的流式解析器将更难使用。如果两种格式的表达能力相似,另一种方法是使用XML转换将一个文档转换为另一个文档的格式。然后将两者规范化,然后直接进行文本差异。我采用了一种方法,比如,我创建了一个映射文档,说明输入中的哪个标记映射到输出中的哪个标记。然后我解析输入和输出XML,并将它们转换为哈希映射(键值对)。现在,当我想比较输入XML中的值时,我循环浏览输入标签列表,从映射表中搜索标签的对应项,一旦我有了输入和输出标签的值,我就比较它并发布结果,但信息不够。文档结构是否相同,只是标记名不同?什么构成两个节点的“相等”?你必须处理插入和删除吗?比较两个任意层次结构的一般情况并不简单,充分描述一个解决方案是远远不够的(这需要一个教程长度的答案)。如果你有一些简化的假设,这可能是一个相对容易的问题,但根据给定的信息,很难判断。谢谢Jim的重播。结构不同。这有点像,使用xml1中可用的信息,有超过1个XML是用不同的标记名(不同的结构)创建的。我只需要通过比较这些值来测试正在进行的系统(创建新的XML)是否工作正常。希望这能澄清一些事情。thanks@eurostar07您的文档中是否有更多同名的标记?你的文件结构是什么?请用这些信息更新您的问题。这实在是太含糊了,无法正确回答。
<hometown>newyork</hometown>
...
<city>newyork</city>