gpt4 book ai didi

java - 检查一个 XML 文件是否为第二个 XML 的 "subset"的最简单方法是什么?

转载 作者:行者123 更新时间:2023-12-04 05:44:26 25 4
gpt4 key购买 nike

我有两个 XML 文件。第一个 XML 有一堆节点,它们也应该出现在第二个 XML 中。第二个 XML 也可能有一些额外的节点。我需要一个可以自动执行此检查的基于 Java 的程序 - 即它应该告诉我,给定两个 XML 文件,第一个文件的所有节点都存在于第二个 xml 中。

我在看 Java + XMLUnit。然而,XMLUnit 对此没有确切的解决方案。请帮忙。

谢谢。

最佳答案

Here is a sample code from xmlunit .

那里的一种方法实际上比较了两个 XML s 并找出差异。

 public void testCompareToSkeletonXML() throws Exception {
String myControlXML = "<location><street-address>22 any street</street-address><postcode>XY00 99Z</postcode></location>";
String myTestXML = "<location><street-address>20 east cheap</street-address><postcode>EC3M 1EB</postcode></location>";
DifferenceListener myDifferenceListener = new IgnoreTextAndAttributeValuesDifferenceListener();
Diff myDiff = new Diff(myControlXML, myTestXML);
myDiff.overrideDifferenceListener(myDifferenceListener);
assertTrue("test XML matches control skeleton XML " + myDiff, myDiff.similar());
}

您可以比较一个 XML反对另一个(将一个保留为骨架 XML )以查找一个是否是另一个的子集。

如果这种方式不令人满意,还有另一种方法可以找到给定两个 XML 之间的所有差异。 s。
 public void testAllDifferences() throws Exception {
String myControlXML = "<news><item id=\"1\">War</item>"
+ "<item id=\"2\">Plague</item><item id=\"3\">Famine</item></news>";
String myTestXML = "<news><item id=\"1\">Peace</item>"
+ "<item id=\"2\">Health</item><item id=\"3\">Plenty</item></news>";
DetailedDiff myDiff = new DetailedDiff(compareXML(myControlXML, myTestXML));
List allDifferences = myDiff.getAllDifferences();
assertEquals(myDiff.toString(), 0, allDifferences.size());
}

docs of XMLUnit更多。

关于java - 检查一个 XML 文件是否为第二个 XML 的 "subset"的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10872020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com