Java 如何比较更改节点的2个xml文件?

Java 如何比较更改节点的2个xml文件?,java,xml,Java,Xml,我有两个xml文件a.xml和b.xml,b.xml是a.xml的修改版本,其中一些节点值已更改。现在我想在我的代码中做一个检查,只有特定的节点值可以更改,而不是所有的节点。如何在java中进行此检查? 我从用户那里得到这个xml,如果他更改了我不允许的其他节点,他只允许更改特定节点 HelloWorld/BusinessServices/Mytest在这两种情况下都发生了变化,这在as也发生了变化的情况下是有效的 40从30到40,这是无效的 a、 xml b、 xml 嗯,你可以用Docum

我有两个xml文件a.xml和b.xml,b.xml是a.xml的修改版本,其中一些节点值已更改。现在我想在我的代码中做一个检查,只有特定的节点值可以更改,而不是所有的节点。如何在java中进行此检查? 我从用户那里得到这个xml,如果他更改了我不允许的其他节点,他只允许更改特定节点

HelloWorld/BusinessServices/Mytest在这两种情况下都发生了变化,这在as也发生了变化的情况下是有效的

40从30到40,这是无效的

a、 xml

b、 xml


嗯,你可以用DocumentBuilder阅读这两个文件。例如,将节点存储在一些列表中,以便在读取节点后进行比较:

DocumentBuilderFactory fac = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = fac.newDocumentBuilder();
Document doc = builder.parse(new File("a.xml");
之后,您可以从存储在节点列表中的文档中获取所有节点

NodeList list = doc.getElementsbyName("someelement"); //just for an example

希望我能帮你一点忙,希望你能用DocumentBuilder阅读这两个文件。例如,将节点存储在一些列表中,以便在读取节点后进行比较:

DocumentBuilderFactory fac = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = fac.newDocumentBuilder();
Document doc = builder.parse(new File("a.xml");
之后,您可以从存储在节点列表中的文档中获取所有节点

NodeList list = doc.getElementsbyName("someelement"); //just for an example
希望我能帮你一点忙

XMLUnitforJava提供了两个JUnit扩展类,XMLAssert和 XMLTestCase和一组支持类,例如Diff, DetailedDiff,Transform,simpledDiff,Validator,NodeTest 允许对以下内容进行断言:

两段XML之间的差异

使用XSLT转换XML片段的结果

对一段XML的XPath表达式求值

一段XML的有效性

通过DOM遍历公开的XML片段中的单个节点

XMLUnitforJava还可以将HTML内容(甚至格式错误的HTML)视为有效的XML,以允许对 网页的内容也是如此

可以找到另一个DocumentBuilder解决方案。

试试

XMLUnitforJava提供了两个JUnit扩展类,XMLAssert和 XMLTestCase和一组支持类,例如Diff, DetailedDiff,Transform,simpledDiff,Validator,NodeTest 允许对以下内容进行断言:

两段XML之间的差异

使用XSLT转换XML片段的结果

对一段XML的XPath表达式求值

一段XML的有效性

通过DOM遍历公开的XML片段中的单个节点

XMLUnitforJava还可以将HTML内容(甚至格式错误的HTML)视为有效的XML,以允许对 网页的内容也是如此


可以找到另一个DocumentBuilder解决方案。

您能澄清一下吗?为我们提供一个示例。您可以将XML解析为JAXB对象并进行比较…您可以尝试使用类似的工具。对于其他工具,请参阅我喜欢的最后一个链接!你能澄清一下吗?为我们提供一个示例。您可以将XML解析为JAXB对象并进行比较…您可以尝试使用类似的工具。对于其他工具,请参阅我喜欢的最后一个链接!