Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
比较java中具有不同标记的2个XML_Java_Xml_Xmlunit - Fatal编程技术网

比较java中具有不同标记的2个XML

比较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转换将一个文档转换为另一个文档的格式。然后

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

例如

XML 1

纽约
...
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>